Skip to main content

Full text of "STD Bus Pro Log-STD70007303 Keyboardand Display Card Users Manual OCR"

Mm PRO-LOG STD 

y y.dj CORPORATION 



7S03 

Keyboard/Display Card 
USER'S MANUAL 




NOTICE 

The information in this document is provided for reference only. Pro-Log do^ not assume any liability arising 
out of the application or use of the information or products described herein. 

This document may contain or reference information and products protected by copyrights or patents and 
does not convey any license under the patent rights of Pro-Log, nor the rights of others. 

Printed in U.S.A. Copyright ® 1980 by Pro-Log Corporation, Monterey, CA 93940. All rights reserved. H&mum, 
Any pert of this document may be reproduced with Pro-Log Corporation cited as the soyrce. 



7303 

KEYBOARD/DISPLAY CARD 

USER'S MANUAL 



PRO-LOG 

CORPORATION 



11/80 



FOREWORD 



This manual explains how to use Pro-Log's 7303 Keyboard/Display Card. It is structured to reflect the answers 
to basic questions you, the user, might ask yourwlf about the 7303. We welcome your suggestions on how we 

can improve our instructions. 

The 7303 is part of Pro-Log's Series 7000 STD BUS hardware. Our products are modular, and designed and 
built with second-sourced parts that are industry standards. They provide an industrial manager with the 
means of utilizing his own people to control the design, production, and maintenance of Vnm company's 
products that use STD BUS hardware. 

Pro-Log supports its products with thorough and complete documentation. Also, we teach courses on how to 
design with, and use, microprocessors and the STD BUS products. 

You may find the following Pro-Log documents useful in your work: Microprocessor User's Guide, and the 
Series 7000 STD BUS Techriical Manual. If you would lil<e a copy of these documents, please write to us on 
your company letterhead. 



ii 



Contents 



P«ge 

Foreword „ II 

Figures _ ■. ~ v 

Section 1 - Purple and Main Features 1-1 

Section 2 - Instaiiation and Specifications 2-1 

I/O Mapped Card Addressing . 2-1 

Changing the Port Addresses . - 2-2 

Alternatives to Soldered Wire Jumpers . 2-5 

Electrical and Environmental Specifications 2-5 

Mechanical Specifications . 2-7 

Section 3 - OperafliMi and Progiammlng . 3-1 

Alphanumeric Display 3-2 

Output Port Bit Assignments for Character Mode 3-4 

Cursor Mode 3-6 

Output Port Bit Assignments for Cursor Mode 3-6 

Keyboard 3-8 

Binary LED Display ....... .„ 3-11 

Rocker Switch^ 3-11 

Section 4 - Operating Software 4-1 

Introduction 4-1 

Memory Addresses . 4-1 

I/O Port Addresses „ 4-1 

Software Packi^ Contents „ „ „ . „ 4-2 

Memory Maps 4-4 

ASCII Display Driver Module . 4-9 

Subroutine (DISPLAY) „ 4-10 

Subroutine (MEM.DISP) 4-11 

Subroutine (STROBE) 4-12 

Cursor Control Module 4-13 

Subroutine (CURSORS) 4-14 

Subroutine (CLR. CURSORS) . 4-15 

Display Service Routines Module 4-17 

Subroutine (CLEAR. DISPLAY) 4-18 

Subroutine (CLEAR.BOTH) 4-19 

Subroutine (DISPLAY.8) „ . 4-20 

Subroutine (LAMP.TEST) . . 4-21 



Hi 



Contents (continued) 



Hexadecimal/ ASCI I Conversion Module . , 4-23 

Subroutine (HEX/ASCII) 4-24 

Subroutine (MEM/ASCII) 4-25 

Subroutine (DISP.HEX) „ 4-27 

Subroutine (DISP.2.IN.C) 4-28 

Formatted Messages Module 4-29 

Subroutine (MESSAGE) 4-30 

Subroutine (BILLBOARD) , 4-31 

Key and Switcli Data Entry Module 4-42 

Subroutine (READ. KEY) 4-34 

Subroutine (DECODE.KEY) „ „ 4-35 

Subroutine (SCAN) 4-36 

Subroutine (ROCKER.STATUS) „.„ 4-37 

Auxiliary Timing Module 4-39 

Subroutine (DfSPLAY.DELAY) 4-40 

Subroutine (LONG.DELAY) 4-41 

Subroutine (DEBOUNCE.DELAY) 4-42 

Demonstration/Test Programs 

DISPLAY. DEMO „. . . ... .... 4-43 

DISPLAY.SELF .. 4-44 

CALCULATOR 4-45 

DISPLAY.TEST „ 4-46 

KEY.TEST „ 4-47 

Coding Forms ....„ '. „....,..„ . ...... 4-49 

Section 5 - Maintenance 5-1 

Reference Drawings 5-1 

Signal Glossary 5-4 

Keyboard Label Replacement 5-5 

Keyboard Disassembly 5-5 

Special Parts 5-5 

Return for Repair Procedures 5-5 

Appendix A - Front Panel Meuisttng of 7iW3 Card (PLAN 131) A-1 

Introduction A-2 

Remote 7303 Drive Via I/O Lines A-2 

Panel Mounting ..... . . ^-A-S 

iv 



kU!lAii!iiliilliii:^iL 



Figures 



Figure Nige 

1-1 7303 Keyboard/Display Card 1-1 

1- 2 Block Diagram of the 7303 Keyboard/Display Card 1-2 

2- 1 I/O Mapped Operation in Local Card Rack . ... 2-^ 

2-2 [Decoder Jumper Pad Numbering for the 7303 - — . — J-2 

2-3 7303 I/O Address Decoder and Schematic for 2 Atl&t^sSBes Per Card... .2-3 

2-4 Jumpers Required for 7303 Port Address Mapping „ jM-4 

2-5 Electrical Specifications - 7303 Keyboard/Display Card 2-5 

2-6 STD BUS Electrical Characteristics over Recommended Operating Limits 2-5 

2-7 Edge Connector Pins for the 7303 2-6 

2-8 Switching Characteristics over Recommended Operating Limits - 7303 Card 2-6 

2-9 7303 Alphanumeric Display Timing Waveforms . .2-7 

2- 10 Mechanical Characteristics tsmr Recommerided Operating Limits - 7303 ^Qgrd.... JS-7 

3- 1 7303 Keyboard/Display .. ........ — .3-1 

3-2 Alphanumeric Display Programmlhg Model for thd 730i , .3^2 

3-3 Hexadecimal Values of ASCII Characters 3-3 

3-4 Data Port Bit Assignments for Character Mode - 7303 Card 3-4 

3-5 Control Port Bit Assignments for Character Mode - 7303 Card 3-4 

3-6 Display Position Addressing - 7303 Card 3-4 

3-7 Flow Diagram of Character Mode Events for the 7303 3-5 

3-8 Character Mode Timing Waveforms - 7303 Card . „... .3-5 

3-9 Data Port Bit Assignments for Cursor Mode - 7303 Card .. ..3-6 

3-10 Control Port Bit Assignments for Cursor Mode - 7303 Card ... .. .„„„.....,.. ..3-6 

3-11 Left/Right Display Position Group Select for Cursor Mode - 7303 Card 3-6 

3-12 Flow Diagram of Cursor Mode Events for the 7303 3-7 

3-13 Cursor Mode Timing Waveforms for the 7303 3-7 

3-14 Keyboard Programming Model for the 7303 3-8 

3-15 Programming Key Bounce and Noise Rejection for the 7303 _3-9 

3-16 Recommended System-Level Keyboard Procedure for the 7303 3-10 

3-17 Binary LED Display for the 7303 . .... ........^ 3-1 1 

3-18 Rocker Switches for the 7303........ .. . 3*^11 

3- 19 Rocker Switch Status for the 7303 3-1 1 

4- 1 Index of Demonstration and Test Programs for the 7303 , 4-2 

4-2 Index of Keyboard and Display Subroutines for the 7303 4-3 

4-3 16K Memory Map— 7303 Software Package in 7801/7803 

Processor Card Onboard Memory Sockets 4-4 

4-4 256-Byte Memory Map— 7303 Alphanumeric Display Subroutines . 4-5 

4-5 256-Byte Memory Map— 7303 Keyboard Subroutines and Demonstration Programs 4-6 

4-6 256-Byte Memory Map— 7303 RAM "MAILBOX" Allocatian ,4-7 



Figures (continued) 




4-7 


Flowchart— ASCII Display Driver Module for the 7303 


4-9 


4-8 


Register and Memory Allocation for 7303 Subroutine (DISPLAY) 


4-10 


4-9 


Characteristics of 7303 Subroutine (DISPLAY) 


4-10 


4-10 


Register and Memory Allocation for 7303 Subroutine (MEM.DtSP)_. ^ 


4-11 


4-11 


Charaictefistics of 7303 Subroutine (IMEM.OISP) . 


4-11 


4-12 


Register and Memory Allocation for 7303 Subroutine (3TfK>K)s 


.„ 4-12 


4-13 


Characteristics of 7303 Subroutir» (STROBE) „ . — 


4-12 


4-14 


Flowchart— Cursor Control Module for the 7303 


4-13 


4-15 


Register and Memory Allocation for 7303 Subroutine (CURSORS).... 


4-14 


4-16 


Characteristics of 7303 Subroutine (CURSORS) 


4-14 


4-17 


Register and Memory Allocation for 7303 Subroutine (CLR.CURSORS) 


....„ 4-15 


4-18 


Characteristics of 7303 Subroutine (CLR-CURSORS) 


4-15 


4-10 


Flowchart-^Display Service Modute for the 73^^*...^ 


4-17 


4-M 


Register and Memory AHoeation fcMT 73(]3 Subroutine (GLEAR.OtSPLAY). 


. ..„4-18 


4-21 


Characteristics of 7303 Subroutine (CLEAR.OISPLAY) '. . » 


4-18 


4-22 


Register and Memory Allocation for 7303 Subroutine (CLEAR.BOTH). 


4-19 


4-23 


Characteristics of 7303 Subroutine (CLEAR.BOTH) 


4-19 


4-24 


Register and Memory Allocation for 7303 Subroutine (DISPLAY .8) 


4-20 


4-25 


Characteristics of 7303 Subroutine (DISPLAY.8) 


4-20 


4-2t 


Register and Memory Allocation for 7303 Subroutine (LAMP.TEST) 


: 4-21 


4-27 


Characteristics of 7303 Subroutine (LAMRT^T). „ _ 


. 4-21 


4-2t 


Flowchart— Hexadedroal/ASCIl Conversion Moduto for the 7303 . — 


. . 4-23 


4-29 


Register and Memory Allocation for 7303 Subroutine (t'^C/ASCll) : ... 


...... .„ 4-24 


4-30 


Characteristics of 7303 Subroutine (HEX/ASCII) 


4-24 


4-31 


Register and Memory Allocation for 7303 Subroutine (MEM/ ASCII) 


4-25 


4-32 


Characteristics of 7303 Subroutine (MEM/ ASCII) 


4-26 


4-33 


Register and Memory Allocation for 7303 Subroutine (DISP.HEX) 


4-27 


4-34 


Characteristics of 7303 Subroutine (DISP.HEX) 


4-27 


4-35 


Register and Memory Allocation for 7^ Subroutine (DiSP.2.IN.C) 


4-28 


4-39 


Characteristics of 7303 Subroulifie (Oi^^.lN.G) ^.^^...^ 


.4-28 


4-37 


Flowchart— Formatted IMeMages Module for the 7303 „ ~.. 


..4-29 


4-38 


Register and Memory Allocation for 7303 Subroutine (MESSAGE) 


4-30 


4-39 


Characteristics of 7303 Subroutine (MESSAGE) . 


4-30 


4-40 


Register and Memory Allocation for 7303 Subroutine (BILLBOARD) 


4-31 


4-41 


Characteristics of 7303 Subroutine (BILLBOARD) 


4-31 


4-42 


Flowchart— Key and Switch Data Entry Module for the 7303. „ 


4-33 


4-43 


Register and Memory Allocation for 7303 Subroutine (READ.KEY) . 


4-34 


4-44 


Characteristics of 7303 Subroutine (READ.KEY) 


4-34 


4-45 


Register and Memory Allocation for 7303 Subroutine (SCAN) 


4-36 


4-46 


Characteristics of 7303 Subroutine (SCAN) „., 


.„... 4-36 


4-47 


Register and Memory Allocation for 7303 Subroutine (ROCKER.STATUS) 


4-37 



vi 



111 iMi^iiiiiililiiiuiiii^ 



I 



Figures (continued) 

4-48 Characteristics of 7303 Subroutine (ROCKER.STATUS) .4-37 

4-49 Flowchart— Auxiliary Timing Module for the 7303 4-39 

4-50 Register and Memory Allocation for 7303 Subroutine (DISP1_AY.DELAY) 4-40 

4-51 Characteristics of 7303 Subroutine (DISPLAY. DELAY) 4-40 

4-52 Register and Memory Allocation for 7303 Subroutine (LONG. DELAY) 4-41 

4-53 Characteristics of 7303 Subroutine (LONG.DELAY) . ^u*-41 

4-54 Register and Memory Allocation for 7303 Subroutine (DEBOUNCE.DELAY) . _..j*-42 

4-55 Characteristics of 7303 Subroutine (DEBOUNCE.DELAY) .Jt-42 

4-56 Flowchart— DISPLAY.DEMO Demonstration/T est Program for the 7303 . ^^4-43 

4-57 Flowchart— DISPLAY.SELF Demonstration/Test Program for the 7303 . ...Ji-44 

4-58 Flowchart— CALCULATOR Demonstration/Test Program for the 7303 4-45 

4-59 Flowchart— DISPLAY.TEST Demonstration/Test Program for the 7303 4-46 

4- 60 Flowchart— KEY.TEST Demonstration/Test Program for the 7303 4-47 

5- 1 Schematic for 7303 (reference only) 5-2 

5-2 Assembly for 7303 (reference only) -..-.5-3 

5-3 STD BUS Edge Connector Signals for the 7303 .. 

5-4 Internal 7303 Signals ... .. .. .S-4 

5-5 Special Parts for 7303 . 5-5 

A-1 Cable Connection when Operating the 7303 as an I/O Load A-2 

A-2 Cutout Details of 7303 Panel-Mounting A-3 

A-3 Profile Mounting of 7303 in User's 1/8-in. Panel A-4 



vii 



SECTION 1 
Purpose and Main Features 



The 7303 is a general purpose, control panel card with data input and display capability (Fig. 1-1). It includes 
an 8-position alphanumeric display keyboard with 24 program-definable keys plus system reset, an .8-bit 
binary LED display, and two rocker switches. (See Fig. 1-2 for the block diagram.) 

You can use the 7303 in applications where you need a low cost interface for system control, data entry, status 
display, and operator prompting. Also, the card is useful for system development, testing, and tfaipiiTg 
applications. 

The 7303 can be mounted in the first position in a card cage with an open-end panel, on a card extender such 
as the 7901, or on a 1/8-in. thick panel. 

° Main Features of the 7303 are: 

• 8-position alphanumeric display with ASCII input 

• 24 programmable keys plus reset 

• Repairable keyboard and replaceable key labels 

• 8-bit binary LED display 

• 2 rocker switches 

• Simple program control of displays and keys 

• On-card I/O ports for processor control 

• Socketed ICs 

• Single +5V Operation 




Figure 1-1. 7303 Keyboard/Display Card. 



1-1 



DATA BUS 
D7 - DO 



lOEXP- 





lORQ*- 

RD*- 
WR*- 



SYSRESET*- 



PBRESET* 



I/O 
CONTROL 
LOGIC 
& 

BUFFERS 



SW2 



ROCKER 
SWITCHES 



SW1 



CONTROL 

PORT 
LATCHES 



DATA 
PORT 
LATCHES 



-k 



EIGHT-CHARACTER 
ALPHANUMERIC 
CONTROL DISPLAY 
DATA 



7f 



ft it ^ it f ff ft ft 
EIGHT INDICATORS 



8 









COLUMN SELECT 




ia 


15 


16 


17 








C 





E 


F 


13 






8 


9 


A 


B 


12 


ROW READ 






S 


6 


7 


11 









1 


3 


3 


10 




KEYBOARD 
MATRIX 


RESET KEY 



Figure 1-2. Block Diagram of the 7303 Keyboard/Display Card. 



SECTION 2 
Installation and Specifications 



The 730S operates as part of an STD BUS card rack system. You can plug it directly into the STD BUS 
backplane (Fig. 2-1) or extend it from the motherboard with a 7901 card extender, or equivalent. In this 
configuration, the card is mapped at processor I/O port addresses. 

Insert the card in the left-most socket (viewed from the card ejector end of the rack) of a card cage that has the 
left end plate open. 

Insert a 7901 card extender in any card slot and pli^ the 7;^3 into the card extender. In this position, the 7303 
clears the other cards and is accessible. 

If you mount the 7303 remotely from the card rack, you will need buffering between the card rack and the 7303. 

A suitable method is to operate the card as an I/O load driven by input and output ports, rather than as an'l/O 
mapped processor-backplane load. For more information, see Pro-Log's Application Note PLAN 131 
(Appendix A). 

I/O Mapped Card AddraMing 

In its normal operation, the 7303 is addressed directly by the processor card. The 7303's Input and output ports 
respond to single read and write instructions executed in the processor's operating program. The 7303 is 
enabled when a jumper-selected combination of address lines AO through A7 is present, and when the 
following control lines are active: lORQ*. lOEXP, and either RD* or WR*. 

The 7303 occupies two consecutive I/O addresses regardless of its mapping assignment. The card is shipped 
with the control port mapped at D1 and the data port mapped at DO. You may retain these addresses or change 
them by moving the installed jumper wires. By using DO and D1 , the preferred addresses, you can easily adapt 
standard Pro-Log software. While the card's port addresses are generally arbitrary, they must differ from all 
other I/O port addresses In the system. If they do not differ, multiple cards will r^pond to the same READ 
instruction, resulting in BUS contention. 




Figure 2-1. I/O Mapped Operation in Local Card Rack. 



2-1 



Changing th« Port Addrasses 

Locate decoders U3, U4, and U5 (74LS42) next to the STD BUS edge connector. Each decoder device has a 
dual row of pads that form decoder output select matrices. Make one (and only one) connection to each of the 
matrices next to U3 and U4, and two connections next to U5. 

The decoder pad numbering (Fig. 2-2) shows the numbering of the pads next to the decoder chips on the 7303. 
Also shown are the jumpers (at X6, Y4, ZO, Z1) that produce the hexadecimal port address DO and D1, the 
selection made when the card is shipped. 

The I/O address mapping and jumper selection for two addresses per card is shown In Figs. 2-3 and 2-4. It 
indicates where to place jumper straps to obtain any port address in the 00-FF hexadecimal range. Using the 2- 
digit hexadecimal port addresses desired, find the hexadecimal port addresses along the vertical axis, and 
read the corresponding strap positions from Fig. 2-4. For example, port address DO and D1 are obtained by 
connecting jumpers at X6, Y4, ZO. and ^1 . This is the preferred address and is shown on the table by the shaded 
area. 




Figure 2-2. Decoder Pad Numbering for the 7303. 



2-2 



imiiiKdiiiMLi 



CARD SELECT DECODERS 



lOEXP (35) 



AS (13) 



13 



A7 



A6 



74LS42 



S7 O 
S6 O 
S5 O 
S4 0- 

S3 :> 

S2 ^ 
S1 & 
SO O 



X6 



xs, 



X3, 



XL, 



M, 



SX 



AS 



A4 (21)- 
A3 (mV 



lORQ* (33 
WB* (31^ 



A2 (25> 



A1 f27> 



12. 



13 



IS 



74LS32 





IL PORT SELECT DECODER 



^C 



14 



IS 



S7 
S6 
85 
S4 
S3 
S2 
S1 
SO 



Z2 



zo 



O- 
O- 



CONTROL PORT 
STROBE- 



DATA PORT 



Figure 2-3. 7303 I/O Address Decoder and Schematic for 2 Addresses Per Card 

(shown mapped at DO and D1, the preferred card address). 



PORT- 



00 
01 



02 
03 



04 
05 



06 

07 



08 
09 



OA 
OB 



OC 
OD 



OE 
OF 



10 
11 



12 
13 



14 
15 



16 
17 



18 
19 



1A 
1B 



1C 
ID 



IE 
IF 



20 
21 



22 

23 



24 
25 



26 
27 



28 

29 



2A 
28 



2C 
2D 



2E 
2F 



30 
31 



32 

33 



34 
35 



36 
37 



38 
39 



_3A_ 
38 



3C 
3D 



3E 
3F 



-L;, vViRES 



XO, YO, ZO, Z1 



XO, YO, Z2, Z3 - 



XO, VI, ZO, Z1 - 



XO, VI, Z2, Z3 - 



XO, V2, ZO, Z1 - 



XO, Y2, Z2, Z3 - 



XO, Y3, ZO, Z1 - 



XO, Y3, 72. Z3 - 



XO, Y4, ZO, Z1 



XO, Y4, Z2, Z3 



XO, Y5, ZO, Z1 



XO, Y5. Z2. 23 



XO, Y6. ZO, Z1 - 



XO, Y6, Z2, Z3 - 



XO, Y7. ZO, Z1 



XO, Y7, Z2, Z3- 



XI, YO, ZO, Z1 - 



XI, VO, Z2, Z3 



XI, Y1, ZO, Z1 - 



XI, VI, Z2, Z3 - 



X1, V2, ZO, Z1 



XI, Y2, Z2, Z3 - 



XI. Y3, ZO, Z1 - 



XI, Y3, Z2, Z3 



XI, Y4, ZO, Z1- 



XI. Y4, Z2, Z3 



X1, Y5. ZO, Z1 - 



X1. Y5. Z2, Z3 



XI. Y6, ZO, Z1 



XI, Y6. Z2, Z3 



XI, Y7, ZO, Z1 - 



XI. Y7, Z2, Z3- 



PORTS 



40 



41 



42 



43 



44 



45 



46 



47 



48 



49 



4A 



48 



4C 



4D 



4E 



4F 



50 



51 



52 



53 



54 



55 



56 



57 



58 



59 



5A 



58 



5C 



5D 



5E 



5F 



60 



61 



62 



63 



64 



65 



66 



67 



68 



69 



6A 



68 



6C 



6D 



6E 



6F 



70 



71 



72 



73 



74 



75 



76 



77 



78 



79 



7A 



78 



7C 



7D 



7E 



7F 



JUMPER WIRES 



X2, YO, ZO, Z1- 



X2, YO, Z2, Z3- 



X2, Y1, ZO, Z1- 



X2. Y1, Z2, Z3- 



X2. Y2, ZO. Z1 - 



X2. Y2. Z2. Z3- 



X2, V3, ZO, Z1 - 



X2, Y3. Z2, Z3 - 



X2, Y4, ZO, Z1 - 



X2, Y4. Z2, Z3 - 



X2, Y5, ZO, Z1 - 



X2, V5. Z2, Z3- 



X2, Y6, ZO, Z1 - 



X2. Y6, Z2, Z3- 



X2. Y7, ZO, Z1 - 



X2, Y7, Z2, Z3- 



X3, YO, ZO, Z1 



X3. YO, Z2. Z3- 



X3, Y1, ZO, Z1 - 



X3, VI, Z2, Z3- 



X3, V2, ZO, Z1- 



X3. Y2, Z2, Z3- 



X3, Y3, ZO. Z1 - 



X3. Y3. Z2, Z3- 



X3, Y4. ZO. Z1 - 



X3, Y4, Z2. Z3- 



X3. Y5. ZO, Z1 - 



X3, YS. Z2, Z3- 



X3, Y6, ZO, Z1 - 



X3, Y6, Z2, Z3- 



X3, Y7, ZO, Z1 - 



X3, V7, Z2, Z3- 



PORTS 



80 



81 



82 



83 



84 



85 



86 



87 



88 



89 



8A 



88 



8C 



80 



8E 



8F 



90 



91 



92 



93 



94 



95 



96 



97 



98 



99 



9A 



98 



9C 



9D 



9E 



9F 



AO 



A1 



A2 



A3 



A4 



A5 



A6 



A7 



A8 



A9 



AA 



A8 



AC 



AD 



AE 



AF 



80 



81 



82 



83 



B4 



B5 



86 



87 



88 



89 



8A 



88 



BC 



BD 



BE 



BF 



JUMPER WIRES 



X4, YO, ZO, Z1 



X4, YO, Z2, Z3- 



X4, Y1, ZO, Z1- 



X4. Y1. Z2. Z3- 



X4, Y2. ZO. Z1 - 



X4, Y2. Z2. Z3- 



X4. V3, ZO, Z1 - 



X4. Y3, Z2, Z3- 



X4, V4, ZO, Z1 - 



X4. Y4, Z2, Z3- 



X4, V5. ZO, Z1 - 



X4, Y5, Z2, Z3- 



X4. Y6, ZO, Z1 - 



X4, Y6, Z2, Z3- 



X4, Y7, ZO. Z1 - 



X4, Y7, Z2, Z3- 



X5, VO, ZO, Z1 - 



X5. YO, Z2. Z3- 



X5, Y1, ZO, Z1 



X5, Y1, Z2, Z3- 



X5, Y2, ZO, Z1- 



X5,.Y2. Z2, Z3- 



X5. Y3. ZO, Z1 - 



X5, Y3, Z2, Z3- 



X5, Y4, ZO, Z1 - 



X5, Y4, Z2. Z3- 



X5, Y5. ZO, Z1 



X5. Y5, Z2, Z3- 



X5, Y6. ZO, Z1 - 



X5. Y6, Z2, Z3- 



X5, Y7, ZO, Z1 



X5, V7, Z2, Z3- 



PORTS 



CO 



CI 



C2 



C3 



C4 



C5 



06 



C7 



08 



C9 



OA 



08 



OC 



CD 



OE 



OF 



DO 



D1 



D2 



D3 



D4 



D5 



D6 



D7 



D8 



09 



OA 



OB 



DC 



DO 



OE 



OF 



EO 



El 



E2 



E3 



E4 



E5 



E6 



E7 



E8 



E9 



EA 



E8 



EC 



ED 



EE 



EF 



FO 



F1 



F2 



F3 



F4 



F5 



F6 



F7 



F8 



F9 



FA 



FB 



FC 



FD 



FE 



FF 



JUMPER WIRES 



X6. YO, ZO, Z1- 



X6, YO, Z2, Z3- 



X6, VI, ZO, Z1- 



X6, Y1, Z2. Z3- 



X6, Y2, ZO, Z1- 



X6, V2, Z2. Z3- 



X6, V3, ZO, Z1- 



X6. V3, Z2. Z3- 



X6. V4, Z2, Z3- 



X6, Y5. ZO, Z1- 



X6, Y5, Z2, Z3- 



X6. Y6. ZO. Z1- 



X6. Y6, Z2, Z3- 



X6. Y7, ZO, Z1- 



X6, Y7, Z2, Z3- 



X7, VO, ZO. Z1- 



X7, VO, Z2. Z3- 



X7, VI, ZO. Z1- 



X7, VI, Z2, Z3- 



X7, V2, ZO, Z1- 



X7, Y2. Z2, Z3- 



X7, Y3. ZO, Z1- 



X7. Y3. Z2. Z3- 



X7, Y4, ZO. Z1- 



X7, V4, Z2, Z3- 



X7, Y5, ZO, Z1- 



X7, Y5. Z2, Z3- 



X7, Y6, ZO. Z1- 



X7, Y6, Z2, Z3- 



X7, Y7, ZO, Z1- 



X7, Y7, Z2, Z3- 



Shading denotes as-shipped configuration. 
Figure 2-4. Jumpers Required for 7303 Port Address Mapping. 



2-4 



The jumpers installed at the time of manufacture may be removed and installed at different locations, imple- 
menting different port addresses. The preferred method of removing jumpers that have been soldered to the 
board is to first cut the jumper in half, then unsolder each half individually and discard. Remaining solder 
should then be removecLfrom the holes and new jumpers installed at the appropriate locations according to the 
following procedure. 



NOTE 

On some early 7303 cards, circuit traces were used instead of wire j umpers to implement ports DO and 
D1 . In such cases, cutthe jumper trace and remove it from the board with a sharp knife, taking care not 
to damage the board or any other traces; then proceed to install the new jumper(s). 



Alternatives to Soldered Wire Jumpers 

If occasional or frequent changes in address mapping jumpers are anticipated, remove the wire jumpers and 
populate the jumper pads with 0.025-in. square posts, which areavailable^individually and in single and double 
strips corresponding to the 0.1 00-in. grid jumper pad spacing on the card. The posts may then be connected by 
wirewrap or by jumper clips available from several sources. Check the height above the board that these parts 
, may protrude, in order to avoid interference with adjacent cards. The recommended wirewrap square postfor 
SX and SY is AMP No. 87215-5, or equivalent. For SZ, it is AI^P No. 87215-1 , or equivalent. The recommended 
jump clip is AMP No. 530153-2, or equivalent. 



Electrical and Environmental Specifications 



SYMBOL 


PARAMETER 


RECOMMENDED OPERATING LIMITS 


ABSOLUTE NONOPERATING LIMfTS 


MIN 


TYP 


MAX 


MIN 


MAX 


UNIT 


Vcc 


Supply voltage 


4.75 


5.00 


5.25 


0.0 


5.50 


V 




Free air temperature 





25 


55 





55 


°c 




Humidity ' 


5 




95 





95 


%RM 



Noncondensing. 



Ftgura 2-5- Bttm^ mp&metmtm' 73^ lCayb<iiiM«|play Card. 



SYMBOL 


PARAMETER 


MIN 


TYP 


MAX 


UNIT 


Ice 


STD BUS supply current^ 




300 


500 


mA 




STD BUS input load 


See 


Fig. 2-7 


See 


Fig. 2-7 




STD BUS output drive 


See Fig. 2-7 
1 


See 


Fig. 2-7 



All segments driven. 



Figure 2-6. STD BUS Electrical Characteristics over Recommended Operating Limits. 



2-5 



PIN NUMBER 






PIN NUMBER 


OUTPUT (LSTTL DRIVE) 






OUTPUT (LSTTL DRIVE) 


INPUT (LSTTL LOADS) 










INPUT (LSTTL LOADS) 


MNEMONIC 














MNEMONIC - 


+5V 


vcc 




2 


1 




VCC 


+5V 


GROUND 


GND 




4 


3 




GND 


GROUND 


-5V 






6 


5 






-5V 


D7 


1 


55 


8 


7 


55 




D3 


D6 


1 


55 


10 


9 


55 




D2 


D5 


1 


55 


12 


11 


55 




01 


D4 


1 


55 


14 


13 


55 




DO 


A15 






16 


15 






A7 


A14 






18 


17 






A6 


A13 






20 


19 






A5 


A12 






22 


21 






A4 


All 






24 


23 






A3 


A10 






26 


25 






A2 


A9 






28 


27 






A1 


A8 






30 


29 






AO 


RD* 


1 




32 


31 






WR* 


MEMRQ* 






34 


33 






lORQ* 


MEMEX 






36 


35 






lOEXP 


MCSYNC* 






38 


37 






REFRESH* 








40 


39 






QT ATI IQ 1 * 
O 1 A 1 Uo 1 ^ 


BUSRQ* 






42 


41 






BUSAK* 


INTRO* 






44 


43 






INTAK* 


NMIRQ* 






46 


45 






WAITRO* 


PBRESET* 




OUT 


48 


47 




1 


SYSRESET* 


CNTRL* 






50 


49 






CLOCK* 


PCI 


IN 




52 


51 


OUT 




PCO 


AUX GND 






54 


53 






AUX GND 


AUX -V 






56 


5& 






AUX +V 



* Active low-level logic 

F"igu.<Fe' 2-7, E^i^ Coii{tt@t®r Pim tm tl|# 730t. 



Figure 2-8 shows the timing requirements that must be observed by the 7303's operating software. Tbi and Tea 
define the uncertainty period for input port data after a mechanical key or switch opens or closes. Figure 2-9 
defines the other data parameters listed below. 



SYMBOL 


PARAMETER 


PROM 


TO 


MIN 


MAX 


UNIT 




Key bounce 


Key depressed or 
released 


Key data stable 




15 


MS 


Tb2 


Rocker bounce 


Switch closed or 
opened 


Switch data stable 




15 


MS 


TSI 


Data setup 


ASCII data 


Position pulse 


1.2 




MS 


Tg Write setup 


Position address 


Write pulse 


0.6 




MS 




Write width 


Write pulse active 


Write pulse inactive 


1.1 




MS 




Write hold 


Write pulse 


Invalid data 
address 


0.5 




MS 



FIguiv 2-8. Switching Characteristics over Reeommended Opemting Limits'— 7303 Card. 



2-6 



teen i 'I 



I til! I 



DATA 



ADDRESS 



WRITE 




Figure 2-9. 7303 Alphanumeric Display Timing Waveforms. 

(Note: Waveforms illustrate program values. WRITE is low level active in hardware.) 

Mechanical Specifications 

The 7303's storage and nonoperating temperature range is limited to to 55°C. 

The 7303 meets all general mechanical specifications of the STD BUS except for component height, which is 
0.95in. (2.14cm) maximum. Ifyou use the 7303 as an interface card, install itinoneoftwo ways that allow you 
access to the component side of the card, utilizing a single slot in the card rack. 



SYMBOL 


PARAMETER 


MIN 


TYP 


MAX 


UNIT 




Key life expectancy 


3x106 






Operations 




Component height 






0.95 


in. 



Figure 2-10. Mechanical Characteristics over Recommended Operating Limits — 7303 Card. 



2-7 



^8 



SECTION 3 
Operation and Programming 



The 7303, as a general-purpose control panel card, operates as part of the STD BUS card rack system. You 
can use the 7303 for system control, data entry, status display, and operator promising in low-cost interface 
applications. The 7303 can also be used for system development, testing, and training. 

The 7303's operator interface consists of an 8-position alphanumeric display; 24 jsrogram-definable keys plus 
a fixed-function reset key that resets the systems's processor card; an 8-bit Mnary LED display; and two 
rocker switcties. This section shows how each of these elements works and how they are programmed. Actual 
program examples are found in Section 4. 

Figure 3-1 shows the physical layout of the 7303's switches and indicators. It also shows the display position 
numbers (7-0), the numeric values of the keys in hexadecimal (0-17), and the rocker switch numbers (SI and 
S2). These designations are important when programming the 7303, and you !WHI probably want to refer back 
to Fig. 3-1 while reading the rest of this section. 



-ALPHANUMERIC DISPLAY 



LEFT 



LEFT HALF 



RIGHT HALF 



RIGHT 



S2 



7 6 5 4 3 2 1 



ROCKER 
SWITCH 



™- 81 

L__J 

ROCKER 
SWITCH 



-LED DISPLAY - 



14 



15 



16 



17 



RE- 
SET 



13 



B 



12 



11 



10 



■ KEYBOARD - 



Figure 3-1. 7303 Keyboard/Display. 

3-1 



Alphanumeric Display 

The display consists of eight, 16-segment alphanumeric positions. Each position displays any character from 
the 64-character ASCII set. It can also display a cursor character (all segments on). Each display position has 
an ASCI I character memory and a separate cursor memory. These separate memories allow the cursor to be 
displayed and removed without altering the ASCII character memory. Each display position is randomly 
addressable. 

Two onboard output ports drive the display (Fig. 3-2). The display's operation is controlled by program 
manipulation of the output bits from these ports. The ports provide the display with data, etddressing, and 
control signals, giving the program random access to any of the eight display positions. 

You can program each display position in either of two modes: character or cursor. By flashing the cursor (all 
segments on) alternately with another character, you can draw attention to one or more of the display 
positions. Also, you can use the cursor as a lamp test. The display can have any combination of characters and 
cursors present. 

In the character display mode, you can load each display position with any of the characters shown in Fig. 3-3. 
Use the SPACE character to blank the position. Note that the display uses 7-bit ASCII code. Each display 
position has its own ASCII character memory, ASCII-to-16-segment decoder, and lamp drivers. 

In the cursor display mode, each display position can show the cursor character, and each position has a 
separate cursor memory in addition to its character memory. Since setting the cursor-on memory bit does not 
alter the content of the ASCII character memory, you can flash the cursor and an ASCII character alternately 
by setting and clearing the cursor memory. 

The functions of the two onboard output ports differ between character display mode and cursor display mode 

(including display clearing). We discuss these two modes separately; also we provide separate subroutine 
modules for the 7303's alphanumeric display operation in each mode (see Section 4). 



LEFT HALF 



RIGHT HALF 



CONTROL PORT 
d7 



7 6 5 4 3 2 1 



POSITION MODE 
SELECT SELECT 



ASCII 
INPUT 



7^ 



DATA PORT 




d7 



OUTPUT 

PORT 
ADDRESS 
DO 



MODE 



b6 



bO 



Figure 3h2. Alphanumeric Display Rrogramrnlng Model for the 73{>3. 



3-2 



ASCII 


HEX 




ASCII 


HEX 


CHAR 


CODE 




CHAR 


CODE 


SPACE 


AO 







BO 


! 


A1 




1 


81 




A2 




2 


B2 


# 


A3 




3 


B3 


$ 


A4 




4 


B4 


% 


A5 




5 


B5 


& 


A6 




6 


B6 


J 


A7 




7 


B7 


( 


A8 




8 


B8 


) 


A9 




9 


Bg 


* 


AA 






BA 


+ 


AB 






BB 


1 


AC 




< 


BG 




AD 






BD 




AE 




> 


BE 


/ 


AF 




? 


BF 



ASCII 


HEX 




ASCII 


HEX 


CHAR 


CODE 




CHAR 


CODE 


@ 


CO 




P 


DO 


A 


01 




Q 


01 


B 


C2 




R 


D2 


C 


C3 




S 


D3 


D 


C4 




T 


D4 


E 


C5 




U 


D5 


F 


C6 




V 


06 


G 


C7 




w 


D7 


H 


C8 




X 


D8 


1 


C9 




Y 


09 


J 


OA 




z 


DA 


K 


CB 




[ 


DB 


L 


CC 




\ 


DC 


M 


CD 




] 


DD 


N 


CE 




/\ 


DE 


O 


OF 




— (Note) 


OF 



Note: Underscore. 



Figure 3-3. Hexadecimal Values of ASCU Characters. 



Initialization: Reset Characteristics. The 7303's SYSRESET* input clears its output ports but does not clear 
the alphanumeric display or its character and cursor memories. If SYSRESET* occurs while the program is 
changing the content of the alphanumeric display, the content may be altered unpredictably. Therefore, mal<e 
sure you restore or clear the alphanumeric display after a system reset. 

Also, after power-on, the display's content is unpredictable. So initialization by a programmed instruction 
sequence is generally needed soon after power-on. To blank the display, load the SPACE character (ASCII 
/hexadecimal AO) in each display position. Note that a separate instruction sequence is required to clear the 
cursors. 

ASCII Character Set. The 7303 can display 64 diffewnt characters. These characters, and the hexadecimal 

code to produce each one, are given in Fig. 3-3. 

To use this figure, identify the character you wish displayed. The code to the right of the character is a two-digit 
hexadecimal number that uniquely identifies the character. For the 64 characters that the 7303 can display, the 
codes range from AO through OF. For example: the hexadecimal code for the SPACE character is AO, for the 
number 3 it is B3, and for the letter M rt is CD. 

The use of hexadecimal codes not listed in the figure results in either a blanked display position (if bit 7 of the 
code is 1), or undefined cursor activity (if bit 7 is 0). 



NOTE on Port Addresses 

Section 2 shows how you can remap the 7303's address decoders to allow the card to occupy any 
two consecutive port addresses in the 00-FF hexadecimal range. 

The 7303 is shipped with port addresses DO and 01 selected by jumper wires, and all of the 
explanation of the card's operation and programming in this section assumes that these addresses 
remain connected. 

If you elect to remap the 7303, regard the onboard ports as the Data Port and the Control Port (ports 
DO and 01, respectively). 



3-3 



Output Port Bit Asslgnmoiits for Character Mode 

Data Port. Output port DO selects character mode (bit 7 = 1 ) and specifies one of tine 64 ASCI I characters to be 
displayed in bits 0-6. Figure 3-4 shows the bit assignments in the data port for character mode. 



nATA RIIC 


MNPM 


DESCRIPTION 


OJ 


MUUb 


1 = Character mode 


d6 


b6 


MSB 

a 

7-bit ASCII character 
LSB 


dS 


b5 


d4 


b4 


d3 


b3 


d2 


b2 


d1 


b1 


dO 


bO 



Note: Standard data port address is HEX DO. 
Bgure 3-4, Data Port BH Ass^mtiits for Character Mode— 7303 Card. 



Control Port. Output Port 01 selects the alphanumeric display position address (bits 2, 1 , 0) and enables the 
display's WRITE function as shown in Fig, 3-5. 



DATA BUS 


MNEM 


DESCRIPTION 


df 


X 


Don't care 


d6 


X 


dS 


X 


d4 


X 


d3 


WR 


1 — Write, = Write inhibit 


d2 


A2 


Display position address 0-7 
See Fig. 3-6 


d1 


A1 


m 


AO 



Note: Standard control port addre^ is HEX 01 . 
Figure 3-5. Control Port ^ AnignmMits fm* &mme^r WMto^TSOt Card. 



Figure 3-6 shows the bit patterns required in the control port's bits 2, 1, to address the eight alphanumeric 
display positions 0-7. 



DATA BUS 


MNEM 


DISPLAY POSITION 


7 


6 


5 


4 


3 


2 


1 





d2 


A2 


1 


1 


1 


1 














d1 


A1 


1 


1 








1 


1 








dO 


AO 


1 





1 





1 





1 






Figiifv 3-6, D^iiy l^i^ri AddNNirii^— 7^ C«fd. 



3-4 



Programming in the Character Display Mode. Causing one of the ASCII characters to appear in one of the 
7303's display positions requires four steps in the program. These four steps can be summarized as follows: 

1 . Output the hexadecimal value of the ASCH character to be displayed (Fig. 3-3) to the 7303's data 
port (Fig. 3-4). 

2. Output the 3-bit address of the display position the character is to occupy (7-0) with the write 
bit = to the control port (Fig. 3-5). 

3. Repeat step 2, but set the write bit = 1. 

4. Repeat step 2 (write bit returns to zero, protecting the display). 

These steps are summarized as a flow diagram and resulting waveforms in Figs. 3-7 and 3-8 below. 



STEP 1 



STEP 2 



STEPS 



STEP 4 







WRITE CHAR- 
ACTER CODE TO 
DATA PORT 






WRITE POSITION 
ADDRESS WITH 

WR=OTO 
CONTROL PORT 






WRITE POSITION 
ADDRESS WITH 

WR=1 TO 
CONTROL PORT 






WRITE POSITION 
ADDRESS WITH 

WH=0 TO 
CONTROL PORT 







^ FINISHED ^ 



Find program values in Fig. 3-3. 





DISPLAY POSITION 




PROGRAM STEP 


7 


6 


5 


4 


3 


2 


1 





COMMENT 


Step 2 


07 


06 


05 


04 


03 


02 


01 


00 


Write = 


step 3 


OF 


OE 


CD 


oc 


OB 


OA 


09 


08 


Write = 1 


Step 4 


07 


06 


05 


04 


03 


oz 


01 


00 


Write = 



Program Values for Steps 2, 3, 4. 



Figure 3-7. Flow Diagram of Character Mode Events for the 7303. 



DATA 
PORT 



bO-be 



STEP 1 

1 



X 



CHARACTER CODE VALID 



X 



r A2,A1,A9 



CONTROL 
PORT 



WRITE 



STEP 2 



"T" 



X 



STEP 3 



STEP 4 



POSITION ADDRESS VALID 



I 



WR 1 



WR 0^ 



ACTIVE 



X 



^WR 



Figure 3-8. Character Mode Timing Waveforms for the 7303. 
(N<^ ViBWifomn»ili«ttlmts firogram valuer MfR^low fi^i^ in hardware.) 



3-5 



Cursor Mode 

Once a valid ASCII character is loaded into the display position's ASCII memory, the position can display the 
cursor character. Note that ASCII characters myst be displayed before the cursor can be displayed; the 
SPACE character satisfies this requirement. 

Output Port Bit Assignments for Cursor Mode 

Cursor mode and character mode share the same output ports, but the bit functions differ between the two 
modes. 

Data port. Output port DO selects cursor mode (bit 7 = 0). Bits 0, 1 , 2, 3 specify the cursor on/off state for four 
display positions at a time. Either the right half of the displays (positions 0, 1 , 2, 3) or the left-half of the displays 
(positions 4, 5, 6, 7) can be addressed in one operation. Figure 3^ shows the data port bit assignments for 
cursor mode. 



DATA BUS 


MNEM 


DESCRIPTION 


d7 


MODE 


= Cursor mode 


d6 


b6 


Don't care 


dS 


b5 


d4 


b4 


d3 


b3 


Cursor enable, positions 3 and 7 


d2 


b2 


Cursor enable, positions 2 and 6 


d1 


b1 


Cursor enable, positions 1 and 5 


do 


bO 


Cursor enable, positions and 4 



Set bit = 1 to 
display cursor. 

Reset bit = to 
remove cursor. 



Note: Standard data port address is HEX DO. 

Figure 3>^^ Data Port Bit Assignments for Cursor illode— 73^ Card. 



Control Port. Output port D1 controls the display's WRITE function (Fig. 3-10) and selects between the right- 
hand four displays and the left-hand four displays (Figs. 3-10 and 3-11). 



DATA BUS 


MNEM 


DESCRIPTION 


d7 


X 


Don't Gare 


d6 


X 


d5 


X 


d4 


X 


d3 


WR 


1 = Write; = Write inhibit 


d2 


A2 


1 = Left-half select (positions 7, 6, 5, 4) 
= Right-half select (positions 3, 2, 1 , 0) 


d1 


A1 


Don't care 


do 


AO 



DISPLAY 


LEFT HALF 


RIGHT HALF 


POSITION 


7 


6 


5 


4 


3 


2 


1 





DATA BIT 


B3 


B2 


B1 


BO 


B3 


B2 


B1 


BO 


A2 


...1 






Note; Standard controi port address is HEX 01. 



Figure 3-10. Controi Port Bit 
AssignmenlB for Cursor Modo^^^ ^nf. 



Figure 3-11. Left/Riglit DIspiay Position 
Group Seieelfor 6iiiior Mode— 7303 C^ml. 



3-6 



Programming in the Cursor Display Mode. With a valid ASCII character loaded to a display position, the cursor 
character can also be displayed in that position. When the cursor is removed, the same ASCII character will 

reappear. 

Cursor characters can be turned on or off in any combination, in groups of four display positions (right half = 
positions 0, 1, 2, 3 and left half = positions 4, 5, 6, 7). Controlling ail eight cursors requires two separate 
operations. 

Setting/clearing the left-half or right-half cursor memories requires four steps in the program: 

1 . Output the desired states of four of the cursors to the data port (Fig. 3-9). 

2. Output the left/right select bit with write = to the control port (Fig. 3-10). 

3. Repeat step 2, but set the write bit = 1. 

4. Repeat step 2 (write bit returns to zero, protecting the display). 

These steps are summarized as a flow diagram and resulting wawtlorrns in Figs. 3-12 and 3- IS belos^^ 

(DISPLAY ^ 
CURSORS J 



STEP 1 



STEP 2 



STEP 3 



STEP 4 







WRITE 4 CURSOR 
STATES TO 
DATA PORT 






WRITE CONTROL 
PORT SELECTING 
LEFT/RIGHT 
DISPLAYS AND WR=0 






WRITE CONTROL 
PORT SELECTING 
LEFT/RIGHT 
DISPLAYS AND WR=1 






WRITE CONTROL 
PORT SELECTING 
LEFT/RIGHT 
DISPLAYS AND WR=0 









DISPLAY POSITION 




PROGRAM STEP 


LEFT HALF 


RIGHT HALF 


COMMENT 


Step 2 


04 


00 


Write = 


Step 3 


OC 


08 


Write = 1 


Step 4 


04 


00 


Write = 



Program Values tor Steps 2, 3, 4. 



^ FINISHED ^ 



Figuro 3-12. How Diagiiuii of Cwnm Mocte EYonts for Vie 7303. 



™ «>0-b3 



CONTROL 
PORT 



LEFT 1 
RIGHT 



WRITE 



STEP 1 
1 



4-BIT CURSOR PATTERN VALID 



STEP 2 

1 



STEP 3 



S TEP 4 

1 



A2 (L/R SELECT) VALID 



t 



WR=1 



WR=0 



X 



X 



WR=0 



Figure 3-13. Cursor Mode Timing Waveforms for the 7303. 

(Note: Waveforms illustrate program values. WR is low active in hardware.) 



3-7 



Keyboard 

The keyboard consists of a RESET key and 24 pmgram-deflnabte keys (Fig. 3-^^41. 

The RESET key is not programmable. When pressed, it grounds the7303's PBRESET* outputtothe STD BUS 
backplane. This signal is provided to reset the system processor card, which responds by generating 
SYSRESET*. SYSRESET* is an input to the 7303 card, which resets the 7303's output ports. The exact 
characteristics of the SYSRESET* signal depend on the processor card in use. 

The 24 program-definable keys are wired in a4x6 switch matrix. The four columns (vertical axis) are driven by 
the data port (output DO port bits 0,1,2, 3) and the six rows (horizontal axis) are sensed by input port DO bits 0, 
1,2,3.4,5. 

Reading the keyboard is a programmed operation. The program strobes each column of keys in turn, using 
rotate or shift instructions to move the strobe (a logic "1 ") from column to column. As each column is strobed, 
the program reads the input port to see if a switch closure has connected the strobe bit to the input port. If so, 
both key coordinates are now known (the program generated the column value and the input port read the row 
value), so that the value of the key can be computed. If not, the program steps the strobe to the next column and 
repeats the process until a key closure oocurs. 



TYPICAL 
+5V KEYSWITCH 



-IDUNE 



bLINE 



d7 



DATA PORT 



y 



dO 



OUTPUT 

PORT 
ADDRESS 
DO 



o- 
o- 
o- 
o- 



d0-d7/8 



ID5*- 
ID4*- 

ID3*- 
ID2*- 
I01*- 
IDO*- 



12 



bO 



b1 



o- 



PBRESET* 



DATA PORT 



INPUT 
PORT 
ADDRESS 
DO 


dS 


\ 






S 









14 


15 


16 


17 


|SET 


C 


D 


E 


F 


13 


8 


9 


A 


B 


12 


4 


5 


6 


7 


11 





1 


2 


3 


10 



Physieai Layout 



ngura 3^14. Ktyboard Pnoigramniins Hodel for Itie 7303. 



3-8 



Key Values. The value assigned to a key is an arbitrary, unique identifier that can be derived once the column 
and row coordinates are known. The (DECODE.KEY) subroutine provided in the 7303's software package in 
Section 4 uses an algorithm that identifies each key with a hexadecimal number in the 00-1 7 range. The 7303 is 
shipped with key labels that show the value that will be generated by the (DECODE.KEY) subroutine when the 
key is pressed. 

Frequently, the value associated with a key is meaningless in relation to the application, and the user may wish 
to rename the key with a more meaningful label. The generalized (DECODE.KEY) subroutine is still used to 
locate a key closure, but the value returned is decoded a second time to lead to a specific system function. For 
example, the CALCULATOR program example in Section 4 shows how to use the compare and conditipnal 
jump instructions to detect the "11" key and assign it the "CLEAR DISPLAY" system function. 

Key Reading Procedures. In addition to simply detecting and decoding a key closure, the program may also be 
responsible for the following key-control procedures: 

1. Differentiate between noise and a genuine key closure. 

2. Ignore key-contact bounce when a key closes or opens. 

3. React only when the key closes, not when it opens (or vice versa). 

4. Avoid multiple responses to the same closure. 

Noise and key-contact bounce can be suppressed by programming a double READ with a time delay between 
the READS as shown In Fig. 3-15. 



I 

SCAN 
KEYBOARD 




DECODE 
THE 
KEY 



' T ' 

.1 

ixampie of Prograin Plow 

Figure 3-15. Programming Key Bounce and Noise Rejection for the 7303. 

(Note: This figure illustrates the technique of read/delay/re-read/compare, which allows the 
program to differentiate between noise and a legitimate key closure, and to pause while the key 
contacts settle.) 



3-9 



In most instances, it is desirable for the key to be effective when pressed, not when released. Because of the 
speed of microprocessors, there is also a real possibility that the system might react more than once to the 
same key closure before the operator can remove his finger (with practice, an operator can deliberately close 
and release a small pushbutton in about 50ms; however, this represents an absolute minimum and the 
program should not make assumptions about the operator's characteristics). 

The (READ. KEY) subroutine in Section 4 shows how to combine the key decode process with procedural 
controls to produce reliable, error-free keyboard entries. 

The basic assumption in the (READ. KEY) routine is that when the subroutine is entered, the operator's finger is 

still on the key that was just decoded. The software waits until the operator releases the previous key, then 
waits again until he presses the next key, then decodes the next key. This technique ensures two important 
characteristics: 

1. The system will react one and only one time to one key closure. 

2. The system's reaction will take place immediately after the key is closed and not when it is 
released. 

Figure 3-16 shows a flow diagram of the major events during the (READ. KEY) subroutine. 




DECODE 
NEW KEY 




Figure 3-16. Recommended System-Level Keyboard Procedure for the 7303. 

(Note: Contact bounce and noise rejection are not shown.) 



3-10 



Binary LED Display 

The 8-bit binary LED display (Fig. 3-17) is driven directly by output data port DO— tine same output port that 
strobes the l<eyboard and supplies ASCII data to the alphanumeric display. When a bit from this port is in tlie 
high state, the corresponding LED lights up. The LED display is cleared by the SYSRESET* input. 

Because output data port DO is used in both alphanumeric display and keyboard decoding operations, the 
binary LEDscliange when you address either the display or keyboard. The binary LEDsare useful in training, 

or in developing programs for the alphanumeric display and keyboard. 

You can also use the binary LEDs to display data that is unrelated to the alphanumeric display and keyboard, 
but when you do: 

1. Refresh the binary LED display after any keyboard scan or alphanumeric display operation. 

2. Note that the binary LEDs will show dynamic keyboard-scanning activity for as long as a 
keyboard key is depressed (using the subroutine in Section 4). 

3. Do not output binary display information to the LEDs, unless the alphanumeric display's WRITE 
bit (output port D1 , bit 3) is first set to the "0" state to inhibit changes in alphanumeric display. 



□ATA PORT 



+5V 




'Low Level Active 



b7' 



b6' 



b5* 



b4* 



b3* 



z 



b2' 



z 



b1 



z 



bO* 



Figure 3-17. Binary LED Display for the 7303. 



Rocker Switches 

Two rocker-type toggle switches (uncommitted) provide general mode selection. They connect directly to bits 
6 and 7 of input port DO, respectively (Fig. 3-18). Their condition (ON or OFF) can be read by the program at 
any time. Figure 3-19 shows the logic state returned according to switch position. Switch S1 is on the right side 
of the display and S2 is on the left. 



DATA PORT 



LEFT S2 




OFF (DOWN) 



+5V 
joN (UP) 
RIGHT SI ^ 



1 



B7 


INPUT 
PORT 
ADDRESS 
DO 

















OFF (DOWN) 







ROCKER SWITCH 


SWITCH 




SI 


82 


POSITION 


ON 

(up) 


OFF 
(down) 


ON 

(up) 


OFF 
(down) 


Input Port DO 


Bit 7 






1 





(Data Port) 


Bit 6 


1 










Figure 3-18. Rocker Switches for the 7303. 



Figure 3-19. Rocker Switch Status for the 7303. 



3-11 



3-12 



SECTION 4 

Operating Software 



Introduction 

This section contains hardware-level subroutine modules with which to operate the display and keyboard. It 
also includes short programs that may help you in testing or repairing ttie card, and that illustrate how the 

subroutines can be linked to work together at system level. 

The software in this section can be used without license from Pro-Log. Although tested and believed correct, 
this software is not represented to be free from errors or copyright infringement, or approprialBforcHriyipM@tfic 

application. 

The subroutines are in STD instruction mnemonics, using 8080 assembly codes. They execute in 8080, 8085, 
Z80, NSC 800, and other code-compatible microprocessor systems. The coding forms are grouped attheend 

of this section, following the flowcharts. 

Flowcharts, which do not refer to microprocessor characteristics, allow the subroutines to be easily adapted to 
other microprocessor types. 

The subroutines are grouped in functional modules. Each module specification describes the module's 
content, including flowcharts. Individual subroutine specifications give memory, entry, and exit requirements 
for each path, plus timing, and other necessary information. 

Memory Addresses 

Full memory addresses are given. They are preferred addresses that allow the subroutines to work with those 

provided for other Series 7000 STD BUS cards from Pro-Log. The program address^ correspond to the ^ries 
7800 processor cards' onboard ROM/EPROM and RAM sockets. 

If your system can not use the memory addresses in the 7303's software package, simply change the memory 
page addresses, as required, when loading these modules into your system. Memory addresses that must be 
located in RAM are noted on the program coding forms. Other locations are intended for ROM storage, but 
they can also be executed in RAM. 

I/O Port Addresses 

The 7303's I/O ports are assigned preferreiif hexadecimal addreisses DO and D1 for compatibility with other 

Series 7000 cards. Section 2 shows how to remap these addresses if necessary. This software can be used by 
simply changing the port addresses when loading the program modules into your system. 

Note that each input (IPA) and output (CPA) instruction is extended to three bytes by the addition of a no- 
operation (NOP) instruction in this software. This allows the user to replace the I PA and OPA instructions with 
the 3-byte LDAD/STAD instructions, if the 7303 card is memory-mapped (with a memory page address 
decoder provided by the user on another card to generate the lORQ* signal). Also, the IPA/OPA instructions 
can be replaced by jump-to-subroutine (JS) instructions for constructing subroutines in RAM, to read/write 
the 7303's ports. This allows the program to vary the port address, which in turn allows the same software 
package to be used for several 7303 cards in the same card rack. 



4-1 



Software Package Contents 

Figures 4-1 and 4-2 list tlie demonstration/test programs and subroutines, respectively, in the 7303's software 
package. 

Figure 4-1 lists short, endless-loop operating programs for demonstrating and repairing the 7303. These 
programs are examples of how the subroutines in the software package can be linked together. Monitor the 
execution of these programs with an M800 system analyzer and other test equipment to facilitate repair of the 
7303, or use them as programming examples or for educational purposes. 



PROGRAM NAME 


FUNCTION 


SEE 


DISPLAY.DEMO 


Uses (BILLBOARD) and (LAMP.TEST) subroutines. Illustrates 
a technique for displaying a long message on a display with a 
limited number of positions. Repeats the message "PRO-LOG 
7303" twice, tests LED segments, then repeats. 


4-56 


DISPLAY.SELF 


Displays address/data for the 256 memory bytes in memory 
page 10, which is where the display subroutines are stored. 
Displays information on the program coding forms in this 
section, then repeats. Uses (DISP.2.IN.C). 


4-57 


CALCULATOR 


Illustrates how (READ.KEY) and (MESSAGE) can work 

together with memory manipulation to create a calculator- 
style data entry, with keystrokes shifted from right to left across 
the display. 


4-58 


DISPLAY.TEST 


Uses (DISPLAY.8) to step the 7303's display through the entire 
ASCII character set with each character displayed in sequence 
In all eight display positions. 


4-59 


KEY.TEST 


Uses (READ.KEY) and (DISP.2.IN.C) to display the 2-digit hex 
value of each key when the key is pressed. Allows the operator 
to test each key or to monitor the decode and display pro- 
cesses on the M800 system analyzer. 


4-60 



( ) Denotes subroutine labels 



Figure 4-1. Index of Demonstratton and Te^ Programs for the 7303. 

(Note: Because these programs are written as endless loops, it is necessary 
to reset the system processor to exit from them.) 



4-2 



I 



Figure 4-2 lists the general purpose, hardware-level subroutines provided for operating the 7303. These 
subroutines allow the user's program to communicate with the 7303 via data "mailboxes" in the processor's 
internal registers and in RAM, avoiding the need to write port and bit manipulation software. 



MODULE NAME 


SUBROUTINE NAME AND FUNCTION 


SEE FIGURE 


ASCII Display Driver 

Controls ASCII display 
operation 


(DISPLAY) Displays any one ASCII character 
in any one position 

(MEM.DISP) Displays one ASCII character 
from memory 

(STROBE) Pulses the display's WRITE line 


4-7 
4-8 & 4-9 

4-10 & 4-11 

4-12 & 4-13 


Cursor Control 

Controls cursor display 
operation 


(CURSORS) Turns on/off any combination of 
cursors 

(CLR.CURSORS) Removes cursors (not ASCII 
characters) 


4-14 
4-15 &4-16 

4-17 & 4-18 


Display Service 

Miscellaneous service 
routines 


(CLEAR.DISPLAY) Blanks ASCII characters (not 
cursors) 

(CLEAR.BOTH) Removes both ASCII characters 

and cursors 

(DISPLAY.8) Displays only one ASCII char- 
acter in all 8 display positions 

(LAMP.TEST) Turns on all LED segments and 
indicators 


4-19 
4-20 & 4-21 

4-22 & 4-23 

4-24 & 4-25 

4-26 & 4-27 


Hexadecimal/ASCII Conversion 

Accepts hexadecimal input 
from various sources 


(HEX/ASCII) Converts one hex digit to one 
ASCII character 

(MEM/ASCII) Converts block of binary in mem- 
ory into displayable ASCII codes 

(DISP.HEX) Combines (HEX/ASCII) and 
(DISPLAY) 

(DISP.2.IN.C) Displays two hex digits in internal 
register 


4-28 
4-29 & 4-30 

4-31 &4-32 

4-33 & 4-34 

4-35 & 4-36 


Formatted Messages 

Ready to use message 
formats 


(MESSAGE) Displays 8-character ASCII mes- 
sage from anywhere in memory 

(BILLBOARD) Displays N-character message 
from anywhere in memory in bill- 
board fashion 


4-37 
4-38 & 4-39 

4-40 & 4-41 


Key and Switch Data Entry 

Performs all key and switch 
hardware manipulation 


(READ. KEY) General keyboard read routine 
(DECODE. KEY) Not for general use - see text 
(SCAN) Detects keyboard activity 
(ROCKER.STATUS) Moves switch states to processor 
status flags 


4-42 
4-43 & 4-44 

4-45 & 4-46 
4-47 & 4-48 


Auxiliary Timing 

Inexact delays for display 
viewing and switch debounce 


(DISPLAY.DELAY) Not for general timing applica- 
tions - see text 

(LONG. DELAY) Not for general timing applica- 
tions - see text 

(DEBOUNCE.DELAY) Not for general timing applica- 
tions - see text 


4-49 
4-50 & 4-51 

4-52 & 4-53 

4-54 & 4-55 



( ) Denotes subroutine labels 



Figure 4-2. Index of Keyboard and Display Subroutines for the 7303. 



4-3 



Memory Maps 

Figures 4-3 through 4-6 are memory maps. Figure 4-3 shows the 16K address space occupied by the Series 
7800 processor cards and the location of the 7303 software paclcage within the processor card's memory. 

Figures 4-4 and 4-5 map the specific subroutines within memory pages 10 and 11 (hexadecimal locations 
1000-1 IFF). Figure 4-6 shows the RAM "mailbox" area within memory page 21 (hexadecimal locations 
2100-2109). 



PAGE 



xO 



x1 


x2 


x3 


x4 


x5 


x6 


x7 


x8 


x9 


xA 


xB 


xC 


xD 


xE 



XF 



Ox 



0000 



PROM SOCKET 
(User's Program) - 



07FF 



PROM 1 SOCKET 



OFFF 



1x 



1000.1100 



t 



5S 



i 



10FF 11FF 



1800 



PROM 2 SOCKET 



PROM 3 SOCKET 



17FF 



1FFF 



2x 



2000 

ot 

20FF 



< c 

Ho 

< CM 

u 



RAM 
1st IK 

I 
I 

I 
I 
I 

;23FF 



2400 



2800 



RAM 
2nd IK 



RAM 

3rd IK 



27FF 



2BFF 



2C00 



RAM 
4th IK 



2FFF 



3x 



3000 



NOT USED 



3FFF 



NOTES 

1. 7801 (8085A) and 7303 (Z80) processor cards have sockets for 8K ROM/PROM (sockets labeled PROM - PROM 3). 
These cards are shipped with these sockets empty. Also, the cards have sockets for 4K.RAM, and the card Is shipped with 
1st IK loaded and 2nd, 3rd, and 4th IK sockets errtpty. 

2. This map shows the 7303 software loaded In user-supplied PROM 2. Ten locations (2100-2109) in the RAM supplied with 
the processor card are used by the software. Page 20 (memory addrasssa 2Q00-20FF) is recommended for the subroutine 
return address stack. 



Figure 4-3. 16K Memory Map— 7303 Software Package 
in 7801/7803 Processor Card Onboard Memory Sockets. 



4-4 



PAGE ADDRESS 10 



LINE 


LABEL 


00 


(MEM.OISP) 


01 






02 






03 






04 






05 






06 






07 


(STROBE) 


08 






09 






OA 






OB 






OC 






OD 






OE 






OF 






10 






11 






12 






13 






14 






15 






16 


1 




17 




18 




19 




1A 


(CLEAR.BOTH) 


IB 






1C 


- 


- 


ID 


(CLEAR. DISPLAY) 


IE 




IF 


: 1 : 


20 




21 




22 




23 




24 




25 




26 




27 




28 




29 




2A 




2B 


(MESSAGE) 


2C 






2D 






2E 






2F 






30 






31 






32 






33 






34 






1C 
43 






36 






37 






38 




r 


39 


(BILLB( 


3ARD) 


3A 






3B 






3C 






3D 






3E 






3F 







LINE 


LABEL 


40 






41 






42 






43 






44 






45 






46 






47 






48 






49 






4A 






48 






4C 






4D 


(DISPLAY.B) 


4E 






4F 






50 






51 






52 






53 






54 






55 






56 






57 






58 






59 






5A 






5B 






5C 




5D 




5E 




5F 




60 


DEMO MESSAGE 


61 






62 






63 






64 






65 






66 






67 






68 






69 






6A 






6B 






8C 






6D 






6E 






6F 






70 






71 






72 






73 






74 






75 






76 






77 






78 






79 






7A 






7B 






7C 






7D 






7E 






7F 


1 


r 



LINE 


LABEL 


80 


(CLR. CURSORS) 


81 




82 


(CURSORS) 


83 






84 






85 






86 






87 






88 






89 






8A 






8B 






8C 






80 






8E 






8F 






90 






91 






92 






93 






94 






95 






96 






97 






98 






99 






9A 






98 


1 


r 


9C 




9D 


(HEX/ ASCII) 


9E 






9F 






AO 






A1 






A2 






A3 






A4 






A5 






A6 






A7 






A8 






A9 




f 


AA 




AB 


(MEM/ASCII) 


AC 






AD 






AE 






AF 






BO 






B1 






B2 






B3 






B4 






B5 






B6 






B7 






B8 






B9 






BA 






BB 






BC 






BD 






BE 






BF 







LINE 


LABEL 


CO 






CI 






C2 






C3 






C4 


1 


r 


C5 






C6 






C7 


(DISP.HEX) 


C8 






C9 






CA 






CB 






CC 


1 




CD 




CE 


(DISP.2.N.C) 


CF 






DO 






D1 






D2 






D3 






D4 






D5 






D6 






D7 






D8 






D9 






DA 






DB 






DC 






DD 






DE 


1 


r 


DF 




EO 


(DISPLAY.DELAY) 


El 






E2 






E3 






E4 






E5 


DEBOUNCE.DELAY) 


E6 






E7 






E8 






E9 






EA 


(LONG.DELAY) 


EB 






EC 






ED 






EE 






FF 






FO 






F1 






F2 




r 


F3 


(LAMP.TEST) 


F4 






ci^ 
rD 






F6 






F7 






F8 






F9 






FA 






F8 






FC 






FD 






FE 






FF 







Figure 4-4. 256-Byte Memory Map— 7303 Alphanumeric Display Subroutines. 



4-5 



PAGE ADDRESS 11 



LINE 


LABEL 


LINE 


LABEL 


LINE 


LABEL 


00 


DISPLAY.DEMO 


40 




- 


80 






01 






41 






81 




- 


02 






42 




_ 


82 




_ 


03 






43 






83 




_ 


04 






44 






84 




- 


05 






45 




- 


85 




- 


06 






46 







86 




_ 


07 






47 




_ 


87 




_ 


08 






48 






88 




_ 


09 






49 






89 




- 
_ 


OA 






4A 






8A 






OB 






4B 






8B 




- 


OC 






4C 






8C 




— 
- 


OD 






4D 






8D 






OE 






4E 






8E 




- 

- 


OF 






4F 






8F 




- 


10 






50 






90 






11 






51 






91 




- 


12 






52 


■< 




92 




- 


13 






53 




93 




- 


14 






54 




94 




- 


15 






55 


(READ. KEY) 


95 




- 


16 






56 






96 




— 


17 






57 






97 




— 


18 






58 






98 






19 






59 






99 






1 A 






5A 






9A 






IB 


DISPLAY.SELF 


58 






9B 






1C 






5C 






9C 






ID 






5D 






9D 






IE 






5E 






9E 






IF 






5F 






9F 






20 






60 






AO 






21 






61 






A1 






22 






62 






A2 


1 


f 


23 






63 






A3 




24 






64 


(DECODE.KEY) 


A4 




25 






65 






AS 




26 






66 






A6 




27 






67 






A7 


(SCAN) 


28 






68 






A8 






29 






69 






A9 






2A 






6A 






AA 






2B 






68 






AS 






2C 






6C 






AC 






2D 






6D 






AD 






2E 






6E 






AE 






2F 






6F 






AF 






30 






70 






BO 






31 






71 






B1 






32 






72 






82 




33 






73 






83 




34 






74 






84 


(ROCKER.STATUS) 


35 






75 






B5 






■SO 






to 






DO 






37 






77 






87 






38 






78 






88 






39 






79 






89 






3A 






7A 






BA 






3B 






7B 






88 






3C 






7C 






BC 






3D 






7D 






BO 






3E 






7E 






BE 






3F 






7F 






BF 







LINE 


LABEL 


CO 


CALCULATOR 


CI 






C2 






C3 






C4 






C5 






C6 






C7 






C8 






C9 




_ 


CA 






CB 






CC 






CD 




_ 


CE 







CF 






DO 






D1 






D2 






D3 






D4 






D5 






D6 






D7 






D8 






D9 






DA 






DB 






DC 






DD 






DE 






DF 






EO 






E1 






E2 






E3 






E4 






E5 






E6 






E7 






E8 






E9 






EA 






EB 






EC 






ED 




EE 




EF 




FO 


KEY.TEST 


F1 






F2 






F3 






F4 






F5 






ro 






F7 






F8 






F9 






FA 






FB 






FC 






FD 






FE 






FF 




f 



Figure 4-5. 256-Byte Memory Map— 7303 Keyboard Subroutines and Demonstration Programs. 



4-6 



PAGE ADDRESS 21 - RAM 



LINE 


LABEL 




LINE 


LABEL 




LINE 


LABEL 




LINE 


LABEL 


00 


rEXT START AUUH. 




40 






80 






CO 




01 


1 


41 




B1 






CI 




02 


CHARACTER 7 




42 




82 




02 




03 


— A — 

t 


43 




83 




03 




OA 


1 


44 




84 




C4 




05 


MESSAGE 


45 




85 




OS 




06 


BUFFER 


46 




86 




06 




07 


1 J 


47 




87 




07 




08 


T- ^ 


48 




88 




08 




09 


CHARACTER ~ 


49 




89 




C9 




OA 






4A 




8A 




CA 




OB 




4B 




SB 




OB 




OC 




4C 




80 




00 




OO 




4D 




80 




CD 




OE 




4E 




8E 




CE 




OF. 




4F 




8F 




CF 


, 


10 




50 




90 




DO 


1 


11 




51 




91 




01 




12 




52 




92 




D2 




13 




53 




93 




D3 




14 




54 




94 




04 




15 




55 




95 




D5 




16 




56 




96 




D6 




17 




57 




97 




D7 




18 




58 




98 




D8 




19 




59 




99 




D9 




1A 




5A 




9A 




DA 




IB 




5B 




9B 


_ _ 


DB 




1C 




5C 


90 




DC 




ID 




50 




90 




DO 




IE 




5E 




9E 




OE 




IF 




5F 




9F 




OF 




20 




60 




AO 




EO 




21 




61 




Al 




El 




22 




62 




A2 




E2 




23 




63 




A3 




E3 




24 




64 




A4 




E4 




25 




65 




A5 




E5 




26 




66 




A6 




E6 




27 




67 




A7 




E7 




28 




68 




A8 




E8 




29 




69 




A9 




E9 




2A 




6A 




AA 




EA 




2B 




6B 




AB 




EB 




2C 




6C 




AC 




EC 




2D 




6D 


■ 


AD 




ED 




2E 




6E 




AE 




EE 




2F 




6F 




AF 




EF 




30 




70 




80 




FO 




31 




71 




B1 




F1 




32 




72 




B2 




F2 




33 




73 




B3 




F3 




34 




74 




B4 




F4 


— 


35 




75 




85 




F5 




36 




76 




B6 




F6 




37 




77 




87 




F7 




38 




78 




B8 




F8 




39 




79 




B9 




F9 




3A 




7A 




BA 




FA 




3B 




7B 




88 




FB 




3C 




70 




BC 




FC 




3D 




7D 




BD 




FD 




3E 




7E 




BE 




FE 




3F 




7F 




BF 




FF 





NOTE 



Only RAM locations 2100-2109 are used by the 7303; however, other Pro-Log software packages may use other 
portions of the processor card's onboard RAM memory. The designer should consult the users' manuals for the other 
cards being used to find the total amount of RAM needed for subroutine support. 



Figtira 4-6. 256-Byte Memory Map— 7303 RAM "MAILBOX" Allocation. 



4-7 



4-8 



ASCII Display Driver Module 



This program module displays single ASCII characters at addressable positions in the 7303's alphanumeric 
display. The module-s subroutines handle all of the hardware requirements of the display; data communi- 
cation with the subroutines is through "mailbox" locations in registersand memory. See Fig. 4-7 for flowchart. 

This module consists of hardware-level subroutines that are used by other portions of the software package 
to create more complex display operations. The designer can use these subroutines to adapt the ASCII 
display to any desired format. 

The subroutines are based on the 7303 programming requirements as shown in Section 3 of this manual. 

• Displays ASCII characters shown in Fig. 3-3. 

• Addressable display positions. 

• Does all hardware manipulation. 

• Not for cursor control— see cursor control module. 

• See DISPLAY.DEMO program for application example. 

• Contents: 

(DISPLAY)— Displays any one ASCII character in any one position 

(MEM. DISP)— Displays one ASCII character from memory 
(STROBE)— Pulses the display's WRITE line 



© 

^(DISPLAY)^ 



Fig, 4-8 
Fig. 4-9 



© 



Fig. 4-10 
Fig 4-11 



FETCH ASCII 
CHARACTER 
FROM MEMORY 



OUTPUT ASCII 

WITH 
PARITY BIT = 1 
TO DATA PORT 



1007 



OUTPUT DISPLAY 
POSmON ADDRESS 

TO CONTROL PORT 
WITH WRITE BIT 



100C 



SET WRITE 
BIT = 1 



SET WRITE 
BIT^O 



1018 



© 

^ STROBE ^ 



Fig. 4-12 
Fig. 4-13 



Q RETURN ^ 

© 

Flgui« 4-7. Flowchart—ASCII Dt^«y Driver Module for the 7303. 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return path identifier encircled 



4-9 



Subroutine: (DISPLAY) 



El Sterttng Address: 1001 



This subroutine allows any one ASCI I character to be displayed In any one of the eight alphanumeric display 
positions. 

Preset register B with the desired display position. Use the 3-bit codes shown in Fig. 3-6to specify one of eight 
positions, loading the code in register B's bits 2, 1, with bits 3 through 7 = 0. For example, load registers with 
hexadecimal 06 to specify display position 6 (second dtsplay from the left). 

Preset the accumulator (register A) with the desired ASCII character's hexadecimal code as shown in Fig. 3-3. 
The (DISPLAY) subroutine sets the parity bit (bit? = 1) as required by the 7303's displays, so that the character 
may be brought in from an external interface and displayed without code alteration. 

Upon exit from the subroutine, the display position remains unaltered in register B, butthe ASCII character in 
register A is lost. 



PARAMETER 


ENTRY @ 


RETy^@ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


ASCII character 


?? 




Register 


B 


Display position 


Display position 


Load bits 0, 1, 2 only; 
bits 3 through 7 = 


Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-8. Regtster and Memory Allocatlion for 7303 Subroutine (DISPLAY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


MIN MAX 


Ns 


Stack memory 


2 


Bytes 


Np 


Program memory 


22 


Bytes 


Npt 


Total program memory 


22 


Bytes 


Mr 


RAM memory 





Bytes 


Te 


Execution time ' 8085 

Z80 


98 

102 


Time 
states 



Figure 4-9. Characteristics of 7303 Subroutine (DISIHAY). 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return path Identifier encircled 



4-10 



Subroutine: (MEM.DISP) 



E2 Starting Address: 1000 



This subroutine allows any one ASCII character to be read from memory and displayed in any one of the eight 
alphanumeric display positions. 

Preset register B with the desired display position. Use the 3-bit codes shown in Fig. 3-6tospecify one of eight 
positions, loading the code in register B's bits 2, 1,0 with bits 3 through 7 = 0. For example, load registers with 
hexadecimal 06 to specify display position 6 (second display from the left). 

Register pair H,L is used as a memory pointer and must be preset to the address of the memory location in 

ROM or RAM, where the ASCII character to be displayed is located. Figure 3-3 shows the ASCII character set 
that can be displayed, and the range of codes that must be preloaded in memory before (MEM.DISP) can be 
used successfully. Use the (MEM/ ASCII) subroutine in advance to translate raw binary memory (terta into 
ASCII if necessary. 

Upon exit from the subroutine, the display position in register B and the memory address in pair H, L remain 
unaltered. 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


H, L 


Memory address 


Unaltered 


H,L points to ASCII 
character in memory 


Register 


B 


Display position 


Unaltered 




Register 


A 


XX 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-10. Register and Memory Allocation for 7303 Subroutine (MEM.DISP). 



SYMBOL 


SUBROUTINE 


RETURN @ 


UNITS 




PARAMETER 


MIN 


MAX 




Ns 


Stack memory 


2 


Bytes 


Np 


Program memory 


23 


Bytes 


Npt 


Total program memory 


23 


Bytes 


Nr 


RAM memory 


1 


Bytes 


Te 


Execution time 8085 


105 


Time 




Z80 


109 


states 



Figure 4-11. CharactertoHcs of 7303 Subroutine (MEM.DISP). 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return path identifier encircled 



4-11 



Subroutine: (STROBE) 



E3 Starting Address: 1007 



This captive subroutine is used by otiier subroutines to drive the 7303 display's write line (WR*) low/high/low, 
while maintaining the desired dispiay-position-address constant. This is explaintd in detaK in 8ecti«HI 3. ? 

Use (STROBE) to adapt the 7303's display to an application for which the other subroutines in the software 
package are not suitable. It is important to note that other methods for driving the WR* control line may result 
In unwanted changes in the dispis^, unless the programming rulies outMned in S®iiM9 3 are followeife 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


Display position 0-7 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will tost 

3. ?? means contents are unl<nown or meaningless. 



Figure 4-12. Register and Memory Aliocation for 7303 Subroutine (STROBE). 



SYMBOL 


SUBROUTINE 




RETURN (Rl) 


UNITS 


PARAMETER 




MIN 


MAX 


Ns 


Stacl( memory 


2 


Bytes 


Np 


Program memory 


16 


Bytes 


Npt 


Total program memory 


16 


Bytes 


Nr 


RAM memory 





Bytes 


Te 


Execution time 


8085 


73 


Time 






Z80 


76 


states 



Figure 4-13. Characteristics of 7303 Subroutine (STROBE). 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return pathjdentifier encircled 



4-12 



Cursor Control Module 



This program module controls the on/off state of the cursor characters. The module's subroutines handle all of 
the hardware requirements of the cursors. The full 8-position cursor on/off pattern is specified byaslngiein^lt 
pattern preset in a register "mailbox." See Fig. 4-14 for flowchart. 

The subroutines are based on the 7303 programming requirements as shown in Section 3 of this manual. 

• Controls all eight cursor on/off states. 

• Does all hardware manipulation. 

• One 8-bit word specifies cursor pattern. 

• See DISPLAY.DEMO program for application example. 

• Contents: 

(CURSORS)— Turns on/off any combination of cursors. 
(CLR.CURSORS)— Removes cumors (not ASCI) diaracters). 



(5 



© 



(CURSORS) 



Rq. 4-15 
Fig. 4-16 



© 



Fig. 4-17 
Fig. 4-ja 



(CLR A 

cunsonn/ 



1080 



SET CURSOR 
BIT PATTERN 
TO ALL ZEROS 



1062 



OUTPUT CURSOR 
BIT PATTERN FOR 
POSITIONS 0,1,2,3 
TO DISPLAY'S 
nCMTSlOE 



10SA 



STROBE 
THE 




DISPLAY Fig. 4-13 



108D 



OUTPUT CURSOR 
BIT PATTERN FOR 
POSITIONS 4,5,6,7 
TO DISPLAY'S 
LEFT SIDE 




Fig. 4-13 




Bigum 4-14. flowcbfut— Contcid ModiHe for the 7393. 



E/R 



Denotes subroutine label 
Low level active 

Entry/return (»fh Ictentifier enclrGled 



4-13 



Subroutine: (CURSORS) 



E4 Starting Address: 1082 



This subroutine allows any combination of cursors to be displayed or removed in one operation, using a single 
8-bit word to specify the cursor on/off pattern. 



NOTE 

Each display position must have a valid ASCII character present in its character memory before it 
can display the cursor character. The SPACE character satisfies this requirement; use the (CLEAR. 
DISPLAY) or other subroutine to preload valid ASCII characters at least once, before using the 
(CURSORS) subroutine. 



Preset register B with the desired cursor pattern. Register B's bits have 1:1 correspondence with the eight 
displays (bit 7 controls the cursor in display position 7). Set the bit = 1 to turn the cursor on, or bit = to remove 
the cursor. Upon exit, the cursor pattern in register B is unalter^. 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


B 


Cursor pattern 


Cursor pattern 




Register 


A 


XX 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-15. Register and Memory Allocation for 7303 SulirouUne (CURSORS). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MIN MAX 


Ns 


Staci( 
memory 


4 


Bytes 


Subroutine (STROBE) 
used. E3 Fig. 4-12. 


Np 


Program 
memory 


26 


Bytes 




Npt 


Total program 
memory 


42 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


257 


Time states 


Absolute time varies 


time Z80 


264 



Figure 4-16. Characteristics of 7303 Subroutine (CURSORS). 



( ) Denotes subroutine label 

* Low level active 

E/R Entry/return path Identifier encircled 

4-14 



lli:J^ijlflliilliiiiiit 



i 



Subroutine: (CLR.CURSORS) 



E5 Starting Address: 1080 



This subroutine removes all eight cursors from the alphanumeric display. The ASCII characters loaded into 
the display's ASCII memories before displaying the cursors will reappear when the cursors are removed. 

Register B is cleared by this subroutine. 



PARAM 


iETER 


ENTRY @ 


RETURN @ 


COIMiyiENT 


ELEIMENT 


ADDRESS 


Register 


B 


XX 


00 




Register 


A 


XX 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-17. Register and Memory Allocation for 7303 Subroutine (CLR.CURSORS). 



SYIMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MIN MAX 


Ns 


Stacic 
memory 


4 


Bytes 


Subroutine (STROBE) 
used. E3 Fig. 4-12. 


Np 


Program 
memory 


28 


Bytes 




Npt 


Total program 
memory 


44 


Bytes 




Nr 


RAM m«iliory 





Bytes 




Te 


Execution 8085 
time Z80 


264 
271 


Time states 


Absolute time varies 



Figure 4-18. CharacterisHcs of 7303 Subroutine (CLR.CURSORS). 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 



4-15 



4-16 



Display Service Routines Module 



This program module provides hardware-level service routines for clearing and testing the 7303's alpha- 
numeric display. See Fig. 4-19 for flowchart. 

The subroutines in this module are used to initialize the 7303 after power-on, to clear the display when desired, 
and to provide general service functions needed in incoming inspection, field testing, and repair of the 7303 
card. 

• (CLEAR.DISPLAY) removes ASCII characters only. 

• (CLEAR. BOTH) removes both ASCII and cursor characters. 

• (DISPLAY.8) allows the testing of each ASCII character in each display; it finds bad latches, decoders, 
drivers, and LED segments. 

• (LAMP.TEST) allows the testing of all alphanumeric and binary LED segments. 

• See DISPLAY.TEST program for application example. 



© © 



Fig. 4-20 
Fig. 4-21 



Fig. 4-22 
Fig. 4-23 



(CLEAaotSPLAY) 



fj^ ^(CLEAB.BOTH)^ ^ 



Fig. 4-24 
Fig. 4-25 



(DISPLAY. 



REMOVE 
CURSORS 



Fig. 4-17 



FETCH ASCII 

SPACE 
CHARACTER 



■8) ^ ^ (LAMP.TEST) ^ 



Fig. 4-26 
Fig. 4-27 



LOAD CURSOR 
BIT PATTERN 
=ALL CURSORS 



DISPLAY ALL 
CURSORS 



©, 



Fig. 4-15 



t04D 



START AT 
DISPLAY 
POSITION 7 



10FB 



LOAD LED 
BIT PATTERN 



10FA 



DISPLAY 
ASCII 
CHARACTER 



©, 



Fig. 4-8 



OUTPUT BIT 
PATTERN TO 
DATA PORT 




^ RETURN ^ 

© 



Figure 4-19. Rowchart^Display Serviee Module for the 7303. 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return path identifier encircled 



4-17 



Subroutine: (CLEAR. DISPLAY) E6 Starting Address: 101 D 

This subroutine blanl<s tlie alplianumeric display by loading tlie SPACE character in each of the eight 
positions. 

Note that the cursors are unaltered by this subroutine. Use (CLR.CURSORS) to remove cursor characters. 
Register B is cleared by this subroutine. 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


C 


XX 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-20. Register and Memory Allocation for 7303 Subroutine (CLEAR DISPLAY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MiN MAX 


Ns 


Stack 
memory 


4 


Byteis 


Subroutine (DISPLAY) 
used. El Fig. 4-8. 


Np 


f>rogram 
memory 


20 


Bytes 




Npt 


Total program 
memory 


42 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


1228 


Time states 




time Z80 


1213 



Figure 4-21. Characteristics of 7303 Subroutine (CLEAR DISPLAY). 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return path identifier encircted 

4-18 



Subroutine: (CLEAR.BOTH) 



E7 Starting Address: 101 A 



This subroutine removes all cursor characters from the display and blanlts the alphanumeric display by 
loading the SPACE character in all eight positions. 

Register B is cleared by this subroutine. 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


C 


XX 


?? 




Register 


D 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-22. Register and Memory Allocation for 7303 Subroutine (CLEAR.BOTH). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MIN 


MAX 


Ns 


Stack 

memory 


4 


Bytes 


See note 


Np 


Program 
memory 


23 


Bytes 




Npt 


Total program 
memory 


73 


Bytes 




Nr 


RAM memory 





.Bytes 




Te 


Execution 8085 
time Z80 


1510 

1501 


Time states 





Subroutines used: (CLR.CURSORS) E5 Fig. 4-17. 
(DISPLAY) El Fig. 4-8. 

Figure 4-23. Characteristics of 7303 Subroutine (CLEAR.BOTH). 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 



4-19 



Subroutine: (DISPLAY.8) 



E8 Starting Address: 104D 



This subroutine displays the same ASCII character in all eight display positions simultaneously. It is a service 
routine for implementing the (CLEAR.DISPLAY) subroutine, and is useful for alphanumeric display test 
operations. 

Preset the accumulator (register A) with the character to be displayed. 

Upon exit, register C contains the ASCII character displayed and register B is cleared. 



PARAMETER 


ENTRY (i^ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


ASCII character 


?? 




Register 


B 


XX 


00 




Register 





XX 


ASCII character 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost 

3. ?? means contents are unknown or meaningless. 



Figure 4-24. Register and Memory Allocation for 7303 Subroutine (DiSPLAY.8). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (R3) 


UNITS 


COMMENT 


MIN MAX 


Ns 


Stack 
memory 


4 


Bytes 


Subroutine (DISPLAY) 
used. E1 Fig. 4-8. 


Np 


Program 

memory 


15 


Bytes 




Npt 


Total program 
memory 


37 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


1211 


Time states 




time Z80 


1196 



Figure 4-25. Characteristics erf 7303 Subroutfne (DiSPLAY.8). 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return path identifier «icircled 

4-20 



Subroutine: (LAMP.TEST) 



E9 Starting Address: 10F3 



This subroutine displays the cursor character in all eight display positions (illuminating all LED segments in 
the alphanumeric display). It also writes hexadecimal FF to the 7303's output data port, which illuminates all of 
the eight binary LEDs located directly below the alphanumeric display. 



NOTE 

All the Iteyboard and display routines, except (ROCKER.STATUS) and (LAMP.TEST), will write to 
the output data port, altering the all-on state of the binary LED display. 

Consequently the designer should follow (LAMP.TEST) with a time delay, or other method, that 
gives the operator an opportunity to examine the LED display before executing other portions of the 
software pacicage. 



PARAMETER 


ENTRY @ 


RETURN @ 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


11 




Register 


B 


XX 


11 




Register 


F 


XX 


11 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-26. Register and Memory Allocation for 7303 Subroutine (LAMP.TEST). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @) 


UNITS 


COMMENT 


MIN MAX 


Ns 


Stack 
memory 


4 


Bytes 


See Note 


Np 


Program 
memory 


11 


Bytes 




Npt 


Total program 
memory 


53 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 
time Z80 


313 
320 


Time states 





Figure 4-27. Characteristics of 7303 Subroutine (LAMP.TEST). 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return patii identifier encircled 

4-21 



1 



4-22 



Hexadecimal/ASCII Conversion Module 



This program module converts binary data, in registers and in bioclcs of memory, into ASCII-encoded data 
suitable for display by the 7303 and for transmission via RS-232, TTY, and otfier media. See Fig. 4-28 forflB&w- 
chart. 

• Acoapts one 4-bit liexadecimal digit (0000 through 1111 binary or 0-F hexadecimal) from a register#nd 
outpWts one 8-bit ASCII character, 0-9 or A-F. 

• Accepts two 4-bit hexadecimal digits in each of 1-256 locations anywhere in memory and outputs 2-512 
ASCII characters to RAM memory. 

• Produces ASCII characters 0, 1 , 2, 3, 4, 5, 6, 7, 8, 9 and A, B, C, D, E, F, (upper case only) with parity bit set 
{bit7 = 1). 

• See DISPLAY.SELF and KEY.TEST for application examples. 

• Contents: 

(HEX/ASCI I)— Converts one hexadecimal digit to one ASCII character code. 
(MEM/ASCII)— Converts block of binary in memory into displayable ASCII codes. 

(DISP.HEX)— Combines (HEX/ASCII) and (DISPLAY). 
(DISP.2.IN.C)— Displays two hexadecimal digits in internal register. 



a 



© 



B 



((HEX/ASCII) ) Fig. 4-29 
J FiB- 4-30 




^ retubnJ 







(MEM/ASCII)^ f!S;31J 



FETCH BINARY 
USING DATA 
SOURCE POINTER 




INCREMENT DATA 
DESTINATION 
POINTER 


10B7 




FETCH BINARY 
USING DATA 
SOURCE POINTER 






ISOLATE LOW- 
ORDER HEX DIGIT 


IMA 




CONVERT 
HettOAfiCU 




10BD 




STORE ASCII 
USING DATA 
DESTINATION 
POINTER 


10BE 




INCREMENT 
SOURCE AND 
DESTINATION 
POINTER 


10C0 




DECREMENT 
BYTE COUNTER 







Fi9.4-» 







^ RETURN ^ 





Figure 4-28. Flowchart— Hexadecimal/ ASCII Conversion Module for the 7303. 

( ) Denotes subroutine label; * Low level active; E/R Entry/return path identifier encircled . 



Fig. 4-29 



^(DISPAIN.C)^ fig 



4-35 
4rW 



10CE 




ISOLATE AND 
RIGHT ADJUST 
BITS 4, S, 6. 7 
FROM AEG. C 


lOIIS 




DISPLAY HEX 




10D8 




DECREMENT 
DISPLAY 
POSITION 
ADDRESS 


10O9 




ISOLATE BITS 
0. 1. 2, 3 FROM 

REG. C 


10OC 




DISMJIY HEX 









Fig. 4-33 



4-23 



Subroutine: (HEX/ASCII) 



Et0 ^Mttofl AjMneas; 109D 



This subroutine converts a 4-bit binary/hexadecimal code into one of 16 ASCII characters: 0, 1 , 2, 3, 4, 5, 6, 7, 

8, 9, or A, B, C, D, E, F (upper case only) with parity set (bit 7 = 1). 

The ASCII codes returned by the subroutine for the 16 characters are shown in Fig. 3-3. 

Enter with the hexadecimal digit loaded in bits 3, 2, 1, of the accumulator (register A). The most significant 
bits (4 through 7) of register A are "don't care" and will be masked by the subroutine. 

Upon exit, the ASCII character code is stored in register A, bits 7 through 0, and the Input binary code is lost. 



PARAMETER 


ENTRY 


return(^ 


RETURn(r6) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


Hexadecimal 
digit 0-F 


ASCII 
character 
0-9 


ASCII 
character 
A-F 


Converts 
bits 0-3. 
Bits 4-7 of 
accumulator are 
"don't care." 


Register 


F 


XX 


?? 


?? 





NOTES 



1. For registers not shown, entry contents are not used and remain unaltered at eait 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. 77 means contents are unknown or meaningless. 

Rgure 4-29. Regtoler and Iftemory Allocation for 7303 Subroutine (HEX/ASCII). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


RETURN (R6) 


UNITS 


MiN MAX 


MiN MAX 


Ns 


Stack 
memory 


2 


2 


Bytes 


Np 


Program 
memory 


13 


13 


Bytes 


Nr 


RAM memory 








Bytes 


Te 


Execution 8085 


See note 


See note 


Time states 


time Z80 


41 


41 



NOTE 

8085 time states are variable: 

38 if digit is HEX A, B. D, C, E, F. 

41 If digit is BCD (0-9). 



Figure 4-30. CliaracterisUcs of 7303 SubrouUne (HEX/ASCII). 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return patti identifier encircled 

4-24 



Subroutine: (MEM/ASCII) 



E11 Starting Address: 10AB 



This subroutine converts a blocl< of memory locations (each containing 8-bit binary data expressed as two 4- 
bit hexadecimal digits) into a block of data with one ASCII character In each location. 



NOTE 

Since each 4-bit half of the binary input data is converted into one 8-bit ASCII character, the 
resulting block of output data written to RAM by this subroutine is twice as large as the block of input 
binary data. 



Preset register pair H,L with the first (lowest) address in the block of input binary data in memory, which may 

be in ROM or RAM space. 

Preset register pair D,E with the first (lowest) address in the block of output ASCII character data in memory, 
which can be in RAM only. 

Preset register B with the number of bytes in the block of input binary data. Use 01 for one byte, 02 for two 
bytes, etc., FF for 255 bytes, and GO for 256 bytes. 

Upon exit, register B is cleared; register pair H,L points at the next location past the input data block; register 
pair D,E points at the next location past the output data block. 



PARAMETER 


ENTRY (ei7) 


RETURn(r7) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


H,L 


MEM pointer input 


Last input +1 


Note 4 


Register 


D,E 


MEM pointer output 


Last input +1 




Register 


B 


Input data counter 


00 





NOTES 



1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost 

3. ?? means contents are unl<nown or meaningless. 

4. First byte in ASCII output memory block is ASCII conversion of bits 4-7 of first byte in binary 
block; second byte in ASCII output memory block is bits 0-3 of first byte in binary block, etc. 

Figure 4-31. Register and Memory Allocation for 7303 Subroutine (MEM/ASCII). 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 



4-25 



SMbroutine: (MEM/ASCII) 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MIN 


MAX 


Ns 


Stack 
memory 


4 


oy ICO 


Subroutine (HEX/ASCII) 
used. E10 Fig. 4-29. 


Np 


Program 
memory 


26 


Bytes 


— 


Npt 


Total program 
memory 


39 


Bytes 




Nr 


RAM memory 


3 


768 


Bytes 




Te 


Execution 8085 


Note 1 


Time states 




time Z80 


Note 2 



NOTES 



1 . 8085 time states are variable; first binary memory location converted: ^ 
229 if both digits are HEX A, B, C:, Q, 1, F 

226 if one digit is BCD (0-9) 
223 if both digits are BCD. 
Each additional location: subtract 7 time states from above totals. 

2. ZSO time states: 

—First binary memory location convert^, 

230 time states. 
—Each additional binary location, 

220 time states. 

Figum 4-32. Characteristtcs of 73(^ Subroutine (MEM/ASCII). 



4-26 



Subroutine: (DISP.HEX) 



E12 Starting Address: 10C7 



This subroutine uses lower-level subroutines to display one hexadecimal digit (0-9 or A-F) in any one of the 
eight display positions. 

Preset register B with the desired display position. Use the 3-blt codes shown in Fig. 3-6 to specify one of eight 
positions, ioading the code in register B's bits 2,1,0 with bits 3 th rough 7 = 0. For example, load register B with 
hexadecimal 06 to specify display position 6 (second display from the left). 

Preset the accumulator (register A) with the binary bit pattern of the hexadecimal digit (0000 through 1111 
binary) in register A's bits 3, 2, 1, 0; bits 4 through 7 are "don't care" and may contain any bit pattern. 

Upon exit, the display position remains unaltered in register B, but the hexadecimal digit in the accumulator is 
lost. 



PARAMETER 


ENTRY (e12) 


return(ri) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


Hexadecimal 
digit 0-F 


?? 




Register 


F 


XX 


?? 




Register 


B 


Display 
position 0-7 


Display 
position 0-7 





NOTES 



1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry centerrts will be lost. 

3. ?? means contents are unknown or meaningless. 

Figure 4-33. Register and Memory Aiiocation for 7303 Subroutine (DiSP.HEX). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (Rj) 


UNITS 


COMMENT 


MiN MAX 


Ns 


Stacl( 
Memory 


4 


Bytes 


Subroutine (HEX/ASCII) 
used. E10 Fig. 4-29. 


Np 


Program 

memory 


6 


Bytes 




Npt 


Total program 
memory 


41 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


See note 


Time states 




time Z80 


180 



NOTE 

8085 time states depend on data: 
177 if digit is HEX A. B, C, D, E, F 
174 if digit Is HEX (0-9). 

Figure 4-34. Characteristics of 7303 Subrouflne (DISP.HEX). 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 



4-27 



Subroutine: (DISP.2.IN.C) 



E13 Starting Address: 10CE 



This subroutine converts tlie two 4-bit iiexadecimal digits in register C into two 8-bit ASCII cliaracters in the 
range 0-9 or A-F, and it displays them in two adjacent display positions. 

Preset register C with the data to be displayed. The subroutine converts register C's bits 4-7 into an ASCII 
character and displays the character In the display position specified below. Then, register C's bits 0-3 are 
converted i nto a second ASCIt eharac^rand dispteyed fn Id® dtsptay position immmdlsiely to the right of the 
position specified. 

Preset register B with the leftmost of two desired display positions. Use the 3-bit codes shown in Fig. 3-6 to 
specify one of seven positions, loading the code in register B's bits 2, 1, with bits 3 through 7 = 0. 

CAUTION 

Do not specify position zero; register B should contain the combinations 01 , 02, 03, 04. 05, 06, or 07 
only after this step. 



Upon exit, register B will have been decremented by 1 firom its initial condrtlon, and two hexadecimal digits in 
register C will have been unaltered. 



PARAMETER 


ENTRY (e13) 


return(W) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


C 


Two hex digits 


Two hex digits 


Note 4 


Register 


B 


Display position N 


Position N-1 


Notes 


Register 


F 


XX 


?? 





NOTES 



1. For registers not shown, entry contents are not used and remain unaltered at exit 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 

4. Bits 4-7 converted to an ASCII code and displayed in specified display position: 
bits 0-3 displayed as ASCII character in adjacent display position on right. 

5. Bits 0-2 specify display position and must be nonzero (do not specify position 0). 

Figure 4-35. Register snd Memory Allocstion for 7303 Subroutine (DISP.2.iN.C). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN @ 


UNITS 


COMMENT 


MIN MAX 


Ns 


StacIt 
memory 


6 


Bytes 


Note 2 


Np 


Program 
memory 


17 


Bytes 




Npt 


Total program 
memory 


§8 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


See n o te 


Time states 




ttme ^0 


418 



NOTES 



1. 8085 time states are variable: 

413 if both digits are HEX A, B, C, D. E. F 
410 if one character is BCD (0-9) 
407 if both characters are BCD. 

2. Subroutine used: (DISP.HEX) E12 Fig. 4-33. 

Figure 4-36. Characteristics of 7303 Subroutine (DISP.2.IN.C). 

( ) Denotes subroutine label; * Low level active; E/R Entry/return path identifier encircled. 



4-28 



Formatted Messages Module 



This program module (see Fig. 4-37 for flowchart) uses the hardware-lisn/el subroutines to format and display 
messages of the designer's choice. Two styles are available: 

1. (MESSAGE) displays a static 8-character ASCII message from anywhere In memory. 

2. (BILLBOARD) displays a dynamic message of 8 characters or more from anywhere in memory, 
rotated across the display in billboard fashion. 

These formats can be used repeatedly and in combination to show system status, prompt the system's 
operator, and other applications. Use the Hexadecimal/ ASCII Conversion Module and the Cursor Control 
Module for more variations on these basic formats. 

• Static 8-character ASCII message display. 

• Dynamic "billboard" display for messages of 8 characters or longer. 

• See DISPLAY. DEMO and CALCULATOR demonstration programs for application examples. 




INCREMENT 
MHKMY 


103S 




□ECR 
DISPLAY 
ADD 


EMENT 

POSITION 

RESS 



^ILLBOAHD^ 



MAO MESSAGE'S 
START ARDRHS 



SAVE CURRENT 
START ADDRESS 



DISPLAY EIGHT 
CHARACTERS 
OF MESSAGE 



PAUSE APPROX. 
SfSim 



SAVE NEXT 
CHARACTER 
OF MESSAGE 



RESTORE 
CURRENT START 
ADDRESS 



Fig. 4-40 
FlQ.4-41 



Fig. 4^ 



Fig. 4-50 




RETURN 



) 



INCREMENT 
CURRENT 
START ADDRESS 



Figure 4-37. Flowchart— Formatted Messages Module for the 7303. 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return path identifier encircled 



4-29 



Subroutine: (MESSAGE) 



E14 Starting Address: 102B 



This subroutine displays an 8-character ASCII message from anywhere in memory. The job of creating a 
variable-format display can be simplified by manipulating an 8-character text buffer in RAM memory, then 
unconditionally displaying the content of the buffer using (MESSAGE) after each alteration of the buffer's 
content. See (BILLBOARD) for an example. 

Preset register pair H,L with the first (lowest address) memory location to be displayed. This can be in either 
RAM or ROM memory, and it appears in the leftmost display position. The (MESSAGE) subroutine fills the 
display from left to right, incrementing the H,L register pair each time until all eight locations are loaded with 
ASCII characters. 

Upon exit, register B is cleared and register pair H,L points at the last character (highest memory address) 
displayed. The displayed memory locations are unaltered. 



PARAMETER 


ENTRY (EI4) 


RETURN (m) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


H.L 


Memory pointer 


H,L points to 8th 
character displayed 


Note 4. 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 

4. Set to point at first character (lowest address) in memory block containing 8 ASCII characters. 



Figure 4-38. Register and Memory Allocation for 7303 Subroutine (MESSAGE). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (rs) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stack 
memory 


4 


Bytes 


See note 


Np 


Program 
memory 


14 


Bytes 




Npt 


Total program 
memory 


37 


Bytes 




Nr 


RAM memory 


8 


Bytes 




Te 


Execution 8085 


1321 


Time states 




time Z80 


1337 



Note: Subroutine used: (MEM.DISP) E2 Fig. 4-10. 



Figure 4-39. Characteristics of 7303 Subroutine (MESSAGE). 



( ) Denotes subroutine label 

' Low level active 

E/R Entry/return path identifier encircled 

4-30 



Subroutine; (BILLBOARD) 



E15 Starting Address: 1039 



This subroutine shifts a long message of eight or more ASCII characters across the 8-position display, leaving 
each character combination in the display for about 300 ms before shifting. The text can begin anywhere in 
memory and be of any desired length. 

The entire message is displayed once, then the routine exits with the last eight characters in the message 
remaining in the display. This gives the program an opportunity to alter the message before the next iteration, 
if the text is loaded in RAM. Execute the (BILLBOARD) subroutine repeatedly to create an endle^ly rotaing 

billboard effect. 

The message consists of any number of ASCII characters (limited by the size of the user's contiguous 
memory), terminated by hexadecimal FF. The subroutine will exit after the FF code is encountered. 

Preset two sequential memory locations labeled TEXT.START (See RAM map. Fig. 4-6) with the first (lowest) 
memory address of the ASCII message. Do this only once— the subroutine can then be used repeatedly 
without additional presets. 

Upon exit, the text-start address in RAM is unaltered. 



NOTE 

When constructing the message, we recommend that the SPACE character (hexadecimal AO) be 
loaded as the first seven and last eight characters in the text. This produces the smooth transition 
from the end of the message to the beginning, which is characteristic of billboards. 



PARAMETER 


ENTRY (eIs) 


RETURN (mo) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


H,L 


Memory pointer 


Memory points 




Register 


A,F 


XX 


?? 




Register 


B 


XX 


?? 




Register 


C 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-40. Register and Memory Aliocation for 7303 Subroutine (BILLBOARD). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN ^10) 


UNiTS 


COMMENTS 


MiN 


MAX 


Ns 


Stack 
memory 


6 


Bytes 


Note 3 


Np 


Program 

memory 


20 


Bytes 




Npt 


Total program 
memory 


76 


Bytes 




Nr 


RAM memory 


10 


User 

dependent 


Bytes 




Te 


Execution 8085 




Note 1 


Time states 




time Z80 




Note 2 



NOTES 

1. 8085— First 8 characters: 1,433 time states + delay. Each additional character = 1,427 time states + delay. 

2. Z80— First 8 characters: 1,920 time states + delay. Each additional character = 1,919 time states + delay. 

3. Subroutines used: (MESSAGE) E14 Fig. 4-38. (DISPUVY.DELAY) E20 Fig. 4-50. 



Figure 4-41. Cliaracteriatics of 7303 Subroutine (BILLBOARD). 

( ) Denotes subroutine label • Low level active E/R Entry/return path identifier encircled 



4-31 



4-32 



Key and Switch Data Entry Module 



This module controls the 7303's hexadecimal keyboard and translates the general purpose rodcer^iwttch 
states into program status information for decision making. See Fig. 4-42 for the flowchart. 

The module contains subroutines that perform all procedural requirements of keyboard-reading and 
decoding as well as general subroutines that allow the user to design a special keyboard procedure. 

• Returns a unique 5-bit hexadecimal number (range 00-17) for each of 24 uncommitted keys— use 
table lookup and change key labels to perform any numeric or nonnumeric program function. 

• Performs all procedures Including switch debounce, noise rejection; activate on depression/ 

ignore key release. 

• (READ. KEY) reads single key only— use other subroutines in module for ntuttiple key closures 
and different procedures. 

• (ROCKER.STATUS) moves on/off states of switches to processor status flags for conditional 

jumps. 

• See CALCULATOR and KEY.TEST for application examples. 





SAVE ROW 
AND COLUMN 
COORDINATES 



COMPARE ^AVEO 
AND PRESENT 
COORDINATES 




COHVERT ROW 
AND COLUMN 
COORDINATES 
TO KEY VALUE 



8 

^ (SCAN) ^ 



STROBE ALL KEY 
COLUMNS 
SIHULTANCOUSLT 



READ ALL 
KEY ROWS 
SIMULTANtOUSLr 









F. 

^ROCKCR.STATUSI^ 



ISS2a.OSED 



SET SIGN FLAG 
AND CLEAR Z 
FLAG IF SI 
IS CLOSED 



@ @ 

Figim 4-42. Ftawctiart— Key and Swrtteh tkm Entry Modute tor the 7303. 



( ) Denotes subroutine label 

Low level active 
E/R Entry/return path identifier encircled 



4-33 



Subroutine: (READ.KEY) 



E16 Starting Address: 1155 



This subroutine is recommended for most keyboard read/decode operations, regardless of the functional 

assignments associated with the keys and their labels. 

(READ.KEY) begins by determining that the keyboard is idle, and it will not proceed until it is. It then waits until 
a key is pressed, and it decodes the key's value after rejecting noise and switch bounce. Once entered, the 
subroutine cannot exit until a valid key closure has occurred. 

The 7303 card is shipped with labels attached to the keys. The hexadecimal labels in the 00 to 17 rangeare the 
values that will be decoded by (READ.KEY) for the key pressed (Fig. 3-1 shows label values; note that the 
RESET key is electrically isolated from the other 24 keys and is not read by this subroutine). Even if you relabel 
the keys to nonnumeric functions (such as MOTOR START or CLEAR ENTRY), you would still use this 
subroutine to read the keyboard. Simply use the decoded value to determine which function to perform— see 
the GALCULATOR demonstration program for an example. 



Upon exit, the decoded key value is in both register A (for immediate use) and in register B, where it can beheld 
momentarily if the accumulator is needed for other functions. 



PARAiMETER 


ENTRY (^6) 


RETURN (r1i) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


Key value 




Register 


B 


XX 


key value 




Register 


B 


XX 


?? 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-43. Register and Memory Atlocatioii for 7303 Subroutine (READ.KEY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (rI)) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stack 
memory 


4 


Bytes 


Note 2 


Np 


Program 
memory 


78 


Bytes 




Npt 


Total program 
memory 


103 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


isiote 1 


Time states 




time Z80 


Note 1 



NOTES 

1. Not predictable, due to human intervention. 

2. Subroutines used: (SCAN) E18 Fig. 4-45; (DEBOUNCE.DELAY) E22 Fig. 4-54 



Rgure 4-44. CharaeierlM^ of 7^3 Subrmj^ne (REAO.KEY). 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return path identifier encircled 



4-34 



Subroutine: (DECODE.KEY) 



E17 Starting Address: 1164 



This subroutine is similar to (READ,KEY), but it omits testing for the Iteyboard-idle condition before reading 
and decoding the key. 

IMPORTANT 

Unless the user adds additional procedural instructions when using the (DECODE.KEY) sub- 
routine, the system may react more than once td the same key closure, causing a system error. 

This subroutine is provided only to allow the user to d^ign a special keyboard read/decode 
procedure, in applications where the (READ. KEY) subroutine, which is normally recommended, is 
not useful. 



For decoded key values and their location upon exit, see (READ. KEY). 



4-35 



Subroutine: (SCAN) 



E18 Starting Address: 11 A7 



This subroutine is used tochecit Iceyboard status, by determining wiietherany l(ey is closed. If a Itey closure is 
detected, (SCAN) is unable to determine which key Ts closed. 

The subroutine is included for use with (DECODE. KEY), allowing the user to design a keyboard read/decode 

procedure if the (READ. KEY) subroutine, which is normally recommended, is not useful. 

Upon exit, the Z (zero) flag can be tested to determine if any key has been pressed. The conditional jump 
instructions are as fonows: 

1 . The JP ZO instruction will result in a jump if a key is closed; no jump will occur if all keys are idle. 

2. The JP Z1 instruction will result in a jump if all keys are idle; no jump will occur if any key is pressed. 

Note that (SCAN) can be mislead by switch bounce or noise. For this reason, we recommend that no 
program decision be made until the (SWITCH. DEBOUNCE) subroutine has been executed and (SCAN) has 
b^n repeated. See the (READ.KEY) flowchart (Fig. 4-42) for an example. 



PARAMETER 


ENTRY (eIs) 


RETURN ^12) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


F 


XX 


Keyboard status 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. 7? means contents are unknown or meaningless. 



Figure 4-45. Register and Memory Allocation for 7303 Suiiroutlne (SCAN). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN ^12) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stack 
memory 


2 


Bytes 




Np 


Program 

memory 


11 


Bytes 




Npt 


Total program 
memory 


11 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


52 


Time states 




time Z80 


54 



Figure 4-46. Characteristics of 7303 Subroutine (SCAN). 



( ) Denotes subroutine laibel 

* Low level active 

E/R Entry/return path Identifier encircled 

4-36 



I 



Subroutln« (ROCKER.STATUS) 



E19 Storting Address: 11 B4 



This subroutine moves the on/off status of the two rocker switches into the processor's flag (register F). This 
allows conditional jump instructions to alter the program flow according to the on/off (closed/open) status of 
the two uncommitted rocker switches. 

Upon exit, use the following conditional jump instructions: 

1 . JP SI or JP ZO will cause a jump if the right-hand rocker switch is closed. 

2. JP SO or JP Z1 will cause a jump if the right-hand rocker switch is open. 

3. JP CI will cause a jump if the left-hand rocker switch is closed. 

4. JP CO will cause a jump if the left-hand rocker switch is open. 



PARAMETER 


ENTRY (e1^ 


RETURN (ms) 


COMMENT 


ELEMENT 


ADDRESS 


Rei^sler 


A 


XX 


7? 




Ref^ster 


F 


XX 


Switch status 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit 

2. XX means no specific date required at entry, but entry contente wrill be lost 

3. ?? means contente are unknown or meaningless. 



Flgura 4-47. RegMer and Msmory Mlocation for T90S Subrau^ (ROCKER.STATU8). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN ^1^ 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stack 

memory 


2 


Bytes 




Np 


Program 
memory 


7 


Bytes 




Npt 


Totol program 
memory 


7 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 80K 


35 


Time states 




time ZM 


36 



Figure 4-4S. Ctiaraetoitetics of 7303 Subroutine (ROCKER.STATU8). 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/ return path identifier encircled 



4-37 



4^-3$ 



Auxiliary Ttming Module 



This module contains captive sutH'outines used by the l<ey and switch data entry module and by the demon- 
stration and test programs in the 7303's software package. See Fig. 4-49 for flowchart. 

The subroutines in this module are designed to provide satisfactory operation with a wide variety of micro- 
processor types, including 8080, 8085A, Z80, and NSC 800, all presumed to operate at the maximum clocl< 
frequency. Accordingly, these subroutines are not capable of generating accurate timing and should not be 
used in any application requiring accurate timing. They are intended only to reduce the processor's execution 
rate to maintain human readabiiity of the display in the demonstration programs, and to provide switch 
det)ounce time for th9 73Q3'si ke^oard. 

* Approximate time delays used for display readability and switch debouncing. 

• Captive su{>routines used by other 7303 program modules orily. 



DELAY) ) 



F»g. 4-50 



((LONG. ^ 
DELAY) J 



Fig. 4-! 



((debounceN 
DELAY) J 



Fig. 4-54 



LOAD DELAY 
LOOP COUNT 
(= 31S nw) 



LOAD DELAY 
LOOP COUNT 
625 im 



LOAD DELAY 
LOOP COUNT 
20 iiw) 



DECREMENT 
LOOP COUNTER 




nftire 4-49. RewQlMflK'AiiiMlwy TMng M0«bile for the 7303. 



( ) 

E/R 



Denotes subroutine M»el 
Low tewel active 

Enti^/return pa^ idemtifier «ncirelecl 



4-39 



Subroutine: (DISPLAY DELAY) 



E20 StarHng Addf— »: 10E0 



This captive subroutine is used by (BILLBOARD) to pause about 315 ms between display shift operations. 

(DISPLAY.DELAY) produces an approximate time delay, which depends upon both microprocessor type and 
ciocic frequency arui is not recommended for other timing applications. 



PARAMETER 


ENTflY 


RETURN ^14) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


C 


XX 


00 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figura 4-50. RegiiMr and Mmnery AHocation for 7303 Subroutine (DISPLAY.DELAY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (r14) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stack 

memory 


2 


Bytes 




Np 


Program 
memory 


19 


Bytes 




Npt 


Total program 
memory 


19 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


27 + 24N 


Time states 


N = Loop count in 
B.C pair 


Ume ZSO 


27 + 24N 



FtguPt 4-i1. Cbaraeleifsiles of 73^ Subroutine CI>tSPIJkY.DEiJ^Y). 



Denotes subroutine label 
Low level active 

Entry/return path Identifier encircled 
4-40 



Subroutine: (LONG.DELAY) 



E21 Starting Address: 10EA 



This captive subroutine is used by a demonstration program to pause about 625 ms between display opera- 
tions. 

(LONG.DELAY) produces an approximate time delay, which varies with microprocessor type an# ciocit 
frequency and is not recommended for other timing applications. 



PARAMETER 


ENTRY 


RETURN 


COMMENTa 


ELEIMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


C 


XX 


00 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. , 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-S2. Register end Memory AHocellon tor 73(» Subroutine (LONG.DELAY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (R14) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stacit 
memory 


2 


Bytes 




Np 


Program 
memory 


9 


Bytes 




Npt 


Total program 
memory 


9 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


17 + 24N 


Time states 


N = Loop count in 
B,C pair 


time Z80 


17 + m 



Figura 4-53. auraeleffstles of 73^ Subroutine (LONG.DEU^Y). 



( ) 

E/R 



Denotes subroutine laM 
Low level active 

Entry/return path Identifier encircteel 



4-41 



Subroutine: (DEBOUNCE.DELAY) 



Ea2 SUffWng Address: 10E5 



This captive subroutine is used to debounce tlie l^ey switches, producing a delay in the range of 15-25 ms. 

Because the time delay is approximate, varying with microprocessor type and clock frequency, this subroutine 
should not be used for other timinf applications. 



PARAMETER 


ENTRY ^22) 


RETURN (mi) 


COMMENT 


ELEMENT 


ADDRESS 


Register 


A 


XX 


?? 




Register 


B 


XX 


00 




Register 


C 


XX 


00 




Register 


F 


XX 


?? 





NOTES 

1. For registers not shown, entry contents are not used and remain unaltered at exit. 

2. XX means no specific data required at entry, but entry contents will be lost. 

3. ?? means contents are unknown or meaningless. 



Figure 4-54. Register and Memory Allocation for 7303 Subroutine (DEBOUNCE.DELAY). 



SYMBOL 


SUBROUTINE 
PARAMETER 


RETURN (r14) 


UNITS 


COMMENTS 


MIN MAX 


Ns 


Stacic 
memory 


2 


Bytes 




Np 


Program 
memory 


18 


Bytes 




Npt 


Total program 
memory 


18 


Bytes 




Nr 


RAM memory 





Bytes 




Te 


Execution 8085 


27 + 24N 


Time states 


N = Loop count in 
B,C pair 


time Z80 


27 + 24N 



Figure 4-%. Ctiaracterfsttos of 7363 Sulirouiiiie (DiBOUNCE.DELAY). 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 
4-42 



Demonstration/Test Program: DISPLAY DEMO 



Starting Address: 1100 



This program demonstrates a technique for displaying a long message on a display with a limited number of 
positions, then performs a lamp test. It repeats the nmsage "PRO-LOG 7303" twice, turns on all LID 
segments, then repeats. See Fig. 4-56. for flowchart. 

Requires no initialization except setting the stack pointer. 

NOTE 

This is an endless loop demonstration program— not a subroutine. 



^DISPLAY.DEMO^ 



SET TO RUN 
BILLBOARD TWICE 



11IH 



SAVE MESSAGE 
START ADDRESS 
IN RAM 



1108 



RUN FULL 
BILLBOARD 
MESSAGE ONCE 



(E15) 
Fig. 4-40 



1103 



DECREMENT 
COUNT 




CLEAR THE 
DISPLAY 



Fig, 4-22 



Figure 4-56. Flowchart— DISPLAY J>EMO Demonstration/Test Program for the 7303. 



( ) Denotes subroutine label 
* Low level active 
E/R Entry/return patti identifier encircled 



4-43 



Demonstration/Test Program: DISPLAY.SELF 



Starting Address: 111 B 



Displays address/data for every location In memory page 10, which Is where the software package's display 
subroutines are stored. Shows full hexadecimal address (1000-10FF) and hexadecimal data stored at each 
address, then repeats. See Fig. 4-57 for flowchart. 

NOTE 

This is an endless loop demonstration program— not a subroutine. 



111B 



CLEAR THE 
DISPLAY 



'Fig. 4-20 



111E 



SET POINTER 
TO START AT 

(MEM.OISP) 
SUBROUTINE 



1121 



DISPLAY 
CURRENT 
MEMORY 
ADOBESS 



Fig, 4-35 



102D 



DISPLAY 
CUmiENT 
MEMORY 
DATA 



^^ig. 4-3S 



WATT APPROX. 



Fig- 4-52 



INCREMENT 
MEMORY 
ADDRESS 
POINTER 




Figure 4-57. Fiowetiart^DISPLAY.SELF Demonstration/Test Program for the 7303. 



( ) Denotes subroutine laMI 

Low level active 
E/R Entry/return path Identifier encirded 

4-44 



Demonstratton/Tert Program: CALCULATOR 



Starting Address; 11 CO 



This program reads keystrokes and shifts them across the display, right to left, in the manner of a calculator. 
The program demonstratesthe modulartechnique of changing displayformat by manipulating memory rather 
than rewriting the display routine each time for each new format. The same display subroutine, (MESSAGE), 
displays the same portion of RAM memory each time, but the memory data Is changed each time prior to 

display. See Fig. 4-58 for flowchart. 



NOTE 

This is an endless loop demofYstratlon program— not a aubroutina. 



^CALCULATOR 



11C0 



SET TO CLEAR 

DISPLAY BY 
LOADING KEY 
INPUT BUFFER 
(IN RAM) WITH 
-SPACE- CHARS. 



^Fig, 4-; 



Fig. 4-29 





SHIFT NEW KEY 
INTO KEY INPUT 
BUFFER AS NEW 
LSD; FORMER MSD 
IS SHIFTED OUT 
AND LOST 







FlgiHV 4-«t. Flowchart— CALCULATOR Demonstration/Test Program for the 7303. 



( ) Denotes-subroutine label 
* Low level active 

E/R Entry/return path Identifier encircled ■ ^ ' 

4-45 



11CC 



DISPLAY 
CONTENT OF 
KEY INPUT 
BUFFER 



11D2 



READ A KEY 

FROM 
KEYBOARD 




CONVERT 
KEY'S VALUE 
TO ASCII 



11DD 



Demonstration/Test Program: DISPLAY.TEST 



Starting Address; 1140 



This program allows operator testing of the displays by observing each display position as the program cycles 
all eight displays through every ASCII character (Fig. 3-3) that can be displayed by the 73(^. See Fig. 4-S9 for 
flowchart. 



NOTE 

This is an endless loop demonstration program— not a subroutine. 



^DISPLAY-TEST)^ 



1140 



PRESET DATA 
COUNTER TO 
"SPACE" CHAR 





DISPLAY 






CURRENT ASCII 






CHAR IN ALL 






• posmoNS 




1046 






WAIT 






600 


nw 





Fig. 4-35 



K1 



■'Fig. 4-52 



1049 



INCREMENT 
ASCII DATA 
COUNTER 




Rgure 4-59. Rowchart— DISPLAY.TEST Demonsto»lloii/Te«l ^negnm for tfie 1^09. 



{ ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return |»th identifier encircled 



I 



D9mon0»aUmfTm0i Wtp0mKi KEY.TEST 



StarMnfl Address: 11 FO 



This program allows an operator to test the 7303's keyboard, by observing that the key value (as labeled on the 
keys when the card is shipped) appears in the display each time one of the keys is pressed. It does not apply to 
the RESET key, which resets the system processor (Section 3). See Fig. 4-GO for flowchart. 



NOTE 

This Is an endless loop demonstration program— not a subroutine. 



Q KEY.TEST ^ 



11F0 



CLEAR 
DMPLAV 



Fig. 4-22 



WAIT FOR KEY 
TO BE MESteO 



Fig. 4-43 



11F8 



DISPLAY KETS 
HEX VALUE IN 
POSmOMSl AO 









Flpire 4-60; f^towehart— KlY.Te^T Demenstratlon/Test Pfogram for the 7303. 



( ) 

* 

E/R 



Denotes subroutine label 
Low level active 

Entry/return path identifier encircled 



4^47 



4-4© 



Coding Ponmt 



PRO-LOG CORPORATION PROGRAM ASSEMBLY FORM 



HEXADECIMAL 


MNEMONIC 


rlTLE DATE 


PAGE 
ADR 


LINE 
ADR 


iNSTfi 


LABEL 


INSTR, 


MODIFIER 


COMMENTS 


IP 


O 

O'' 




fmErri D\sP) 


LDf^N 


H, l_ 


F ETf H ^^(^ CHRRftCTFR FftOTTl mEfOORV 




ORftl 








2 


flO 






PftR\TY Bit 


(OUTPUT ASCTI VN\TH PRRlTY BlT=\TO 




3 


Ti?> 




OPPi 




DRTR PORT 




4 


DO 






DPiTR PORT 






5 


oo 




MOP 








6 


7 ft 




LDft 


R 






O' 


E-fc 


( STROBE) 






TqljtPUT DVSPLRy POSVTIOW ftDDRESS 




B 


FT 






POMTlOMBlTi 


Trt f.ONTR0\ PORT >MVT« WRVTE BvT= O 




9 






OPPl 








A 


D\ 






cowtrol port 






B 


OO 




N£iP 








C 


Ffo 




ORPiX 




T SET write: Bit =\ 




D 


o.S_ 






WRITE RlT 




E 


jj ^ 












F 


T)l 










\o 


I 


OO 




hiOP 




T SET NNRVTE. RVT=0 




1 


£^ 






' h 






2 


o a 






UORlTt P>\T 






3 


D?> 












4 


Dl 






'ftNTRCsL PORT 






5 


oo 




MOP 








6 






RTS 








7 














8 














9 














\ A 


r. D 


(CLEftR BOTH") 


TS 




■• fAERR CVlR.SOR?. 




B 








riERRCDRSftRS 






C 


\o 












1 










T sWR\rE ftSCTt 'SPhcC TO 




E 














F 


C3 




















[DVSPlRY 8^ 






1 














2 














3 














4 














5 














6 














7 














8 














9 














A 
















0<d 








T STftRT RT DlSPLftV PO&VTION 7 




C 


07 






POSITION 7 









CD 




JS 




T 0\SPL9S|V ftME. CttRRftCTER FROfY^ 




E 


00 








I mEmnRY 




F 


» 










\o 


?> 


7 R 




LOPi 


B 


T 




1 


F£. 




CP?iX 




CHECVv IF position! <2) IS 




2 


00 






POS\TIOH 


1 LOVsOEC) 




3 






RTS 








4 






\CP 


R,l_ 


T \ucREmENT rriEmoRY poimter 




5 






OCR 




r DFtRFIftEMT T)\S¥LRY POSITlnKi RDDRE55, 




S 


r.?i 




TP 








7 


?.D 






mE<.<,P>6ElO0? 






S 


\o 














? A 




LDPD 




■f VLWb ^f^ESSRfee'S <.TRRT PiDDRESS 




A 


OO 






TEXT-^TRRT 


1 FRom (T\tr(\r>RY 




a 


21 


















PSP 


H.L. 






D 


r.D 




JS 








E 








C 'mes'iRfoE") 


J OVSPURY ElfeHT CrtftR^ttFR*. ftF BvESSRfeE 




F 


10 











iMoai am 



4-49 



PRO-LOG 



CORPORATION 



PROGRAM ASSEMBLY FORM 



HEXADECIMAL 


MNEMONIC 


TITLE DATE 




LINfc 


INSTR 


LABEL 


INSTR. 


MODIFIER 


COMMENTS 


lO 








■TC. 




rHUSC Hrri\un 11 11 n \ k\_t li- 3Ci-tJiMLJ 






to 






L D\SrLHY DEvm, 






2 


\ D 














"> "3. 




lev 


— ti+i= 


SHME Mt.T.1 CHHRHCTEK Df- rr\E55rltot. 




4 


7C. 




LDRN 


— iM= 












rLP 


— tM= 


' ' DC: OCT ^liOOCTKl"!" CT^OT" CnC^T^DCcC 

Rt-SToKt. CUKHEHT STV^\<\ V^UUKtib 






r ti 












7 


r r* 






CNU rLnl 






g 


r Q. 




ftT<, 


E. 1 






— ^ 






V /• D 
\CW 


1 






A 


r. 3 




T D 

J r 








B 


3C 














I O 
















^ nt<LDt CiV ■ ft 

1, UlarUn 1 B ) 


LUC. 


H 








Oto 












^ 


CJ / 










1 r\ 








1 Pi ^ 














T C 








— — 

2 








^ r\ t c oi \ 
L D\SPLHT ) 






3 














4 


7 B 






n 






5 


fc- 




t vni. 










C )0 












7 


r ft 
































TP 






















g 


1 

1 CJ 












C 














Q 














E 














F 












1 LJ 


















AO 








i .oo^ ur \ n out. 




— ^ 


MCj 


- 


SPPiCE 






3 


AD 






SPf\CE. 






4 








SPP\CEL 






5 


AO 






SPfNCE 






6 


nO 






SPPiCE. 














^PPiCE. 






g 








■¥ 






9 


A A 








_ 




A 


iJO 






P 






B 








R 






C 


C.F 






O 






D 














E 


C.C 






L. 








C F- 










iC) 


7 " 


C7 






^ 






1 


f\ 1 












2 


JJLZl. 






s 






3 


(\o 






SPPiCF 






4 








7 






5 








?. 






6 


BO 






O 






7 














8 


AO 












9 


^o 






SPRCE 






A 


AO 






SPFVCE 






B 


AO 












C 


AO 






SPhCE_ 






D 


^o 












E 


AO 








to 


7 F iFF 







PROLOG 



CORPORATION 



PROGRAM ASSEMm.Y FORM 



HEXADECIMAL 


MNEMONIC 


TITLE DATE 


PAGE LiNb 
ADR ADR 


INSTR 


LABEL 


INSTR. 


MODIFIER 




lO 8 






1 p\Cl"r" 










OO 






OO 


. r Pit-U Z.E.KQS 


1 n 


ft 2 






LDHi. 




OOTPUT CVJRSOR B\T V\^TT tKK FOK 




3 


OF 






POSITIONS ^2.\p 


POSVTIOMS 0\2.;^ TO KVfeHT SIDE 




4 


r\0 




—r 


B 


OF DVSPLf^Y 




5 


TNI 












g 


T\ /*\ 

PO 














OO 




MOP 








g 






LDBX 










OO 






KVfcHT S\DE 








CD 








6TR0BE, THE. DViPUftY 






07 






( STROcE) 








lO 














78 








OUT PUT CURSGR &VT 9ftTlER.V4 






OF 




r\ n r\ 




Ff)K PosmoNS 4 St.;? to left 






OF 




D f^ 




SIDE. OF DVSPUPiY 


1 /N 

\o 


^ 


OF 














OF 












— — 

2 
















OF 






_ 












OPP> 








5 








DnTft PORT 






g 


OQ_ 




z- — 

r 








7 


-.it- 




1 r\ T~ 








9 


04 






LErFT S\DE. 












J r 




*>TRC>&E. THE. D\SPLRT € EXIT 




A 


OT 














lO 


























Q D 




^ LLC V^&^y TT^ 






r Rtrf>oN/E Bits 4*rfo^7 




E 


CjF 






OF 






p 


l-fe- 




Cr H± 






1 




OB 














liR 






c\ 







2 


AV 














\ o 


















(\DPiX 




NO-HET^ CHPiKftCTtR "~F, P\DD 




g 


ti— r 






d7 


ft! (VtfLDS CI-CIo CODES) 


















^ T 

r\ 7 


cr / 

F(o 


0-9 


OR?>X 




V\fcX CHftHnCTt.K 0-"=? HOD 




8 


±iO 






DO 


RO (YIELDS BOE.«^ CODES) 






C9 






RTS 








— ^ 














n B 


7E- 


? ; ^ 

.rf»Em/A5)£im 





— V- 


■ r FETCH BlNftW USIN6 DMR SBORCE. PD\KTEa 




c 














D 


FO 








R\G,HT-P\C):5V)ST THE ttV&H-OROEK 






OF 




n rs 










OF 












A n 
D 


OF 














OF 




RK?\ 








2 


f.D 








T CCi«sl\/EKr ttEX TO ?\SCTr: 




3 


9D 






f 1 1 rr" vi f rv ^ xTT^ 

L HE.X./R*iaL, 






4 


lO 












5 


\?, 






: 


T STORE RSOl l)Slh\C-,DftTft t>ESTlNMm PfMfiTER 




6 


1?> 




\cp 




T mCRBlEST TOE CftTft bESTlt^(\T\CM POINTER 




7 


7E 






; 


: ; FETCH PiNftW OS\Nfe DKTft -^^\1?^E ?filWTER 




8 


F(n 








■■ If^LftTEl TWE Lr^NM oRWl? ttEX Olr^lT 




9 


OF 












A 


rD 








rfiKIN/EKT HCK TO PkStnr 




B 














C 


lO 












D 


12. 








T fSTORF S^SOL US>Hfe DlVrft feESTWlMlbK PDlMTtR 




E 






KP 




T IKCfiEKVEMTSOURiERND DE<>TIMI\T(r>W ?61MTER 




F 













4-51 



mtoomm akembly form 



HEXADECIMAL 


MNEMONIC 


TITLE DATE 


PAGE 
ADR 


LINE 
ADR 


INSTR 


LABEL 


INSTR, 


MODIFIER 


COMMENTS 


10 


C 
















1 


c^ 




TP 


CO 










Tt^C tr\ / ft c. ^ TT ^ 






1 O 














4 










1 


r 




5 














6 














C 7 




V. ui^r n t- X ^ 


3 o 








8 


Qi,Tl 












9 


\ r\ 
lO 












A 






TD 








B 


o\ 








J- n\«.PLftN ft 5.00: CMBf^PlOER 




C 





























C E 


79 




1 r\ ^ 
LD n 


u 








F 


tto 












lO 




ro 






FO 








1 


Or 














2 


Or 














3 


Or 














4 


OF 




r\ i\r\ 






















r n\?.PLftv ufv 






1 
















lO 




















h/- p. 






■ D«RB?K»T D\5ftRY POSlTUiH ftPt>RES5 










1 

n 


c 
























ur 


















TP 

o r 








— ^ 










y DiaPLRv HEX 


















p 




















L r>RT 






r \ Of\D tilf,PLftV LOOP OiOMT 




1 


DO 






a\.«f ms. 














O r 













fc-C 














4 


lo 
















Qto 




LDBl. 






- LrthD DEL.P.V LOOP CrjONiX 




6 


CJH 














7 






r 












CC_ 






rnv »sv- 








— 

9 


lO 


















( LONtJ UtlRT^i 


LUtSi. 






r LC>FiO OELfty LOOP COUHT 




B 


r r 






(e'2-5 ti^ S 








P n 
C-C 




rriuat 




», C 




r DEdREtTiEMT UOOV> CO0MTE.R. 




D 


To 










■ DEI «y COOMT = <zl ? 






'P.\ 




Qrsn 


C 










ca 




TP 


to 






10 


F" 
















1 


lO 














2 


C9 














F 3 


Ofa 










[ L^iRO r-UR&ftR. an- pRTTERN 




4 


FF 














5 


fD 














6 


8?. 






C cursors') 








7 


lO 










r 




8 






LDRT 




J UQP»D UED B\T PATTERN 




9 


FF 












A 






QPPl 




T CiUTPUT Eat PftTTEft.M TO 




B 


DO 






DftTh PORT 


1 Bft-rtS PORT 




C 


00 




HnP 








D 


C9 












E 














f 













mmvn 



4-52 



MO-LOO C<MM>OMTION mOGRAM ASSEMBLY FORM 



HEXADECIMAL 


MNEMONIC 


TITLE 


DATE 


ADR 


ADR 


INSTR 


LABEL 


INSTR 


MODtFIER 


COMMENTS 


11 


O " 


IE 




LDEX 












1 


OZ 






COOMT 2. 








2 


?\ 




LDPT 










3 


















4 


\o 














5 


?? 




STPD 


— iM= 








6 


on 














7 


? 1 


















DEJftO U^hP 














9 
















A 


lO 














B 


ID 




DCE 








DPt^RF mc*lT UOOP COOKTER 




C 


r.^ 




TP 


20 






^QllfeL- TC> 2.ERO? 







Oft 






DEtM> LOOP 








E 


II 














F 


r.D 










VES - TORVi OU ftU__ DlspLft-^^ <.EArf\EKlS 


11 


1 ° 






L uhiMi iL„, , 






1 


lO 











- 




2 


r.D 












PftUSE (6ZS mvLLXSECOHDS 




3 
















4 


10 








' 






5 


CD 




:t5. 












6 


\^ 






JtLEhR fVlTH") 








7 


\o 














8 


c?> 




.TP 








RtLPEAT- 




9 


oo 






W5PLftY OEmn 








A 


11 














1 B 


C.Ti 




rrs 












C 


l^ 






CCLEftR BOTU) 










D 


10 














E 






LbPI 








jSELT POtMTER TO SmKri\T Cw\EI»\ DlSP) 




F 














\\ 


a. 
















2i 






LDC 








b\SPLRY THE. CJLJRRQIT m&mfiRY ADUftESS 




2 
















3 


07 














4 


CD 




T<, 










5 


C& 














6 


lO 














7 


4D 




UDC 


L- 








B 


Ofo 














9 


05 














A 


CD 




TS 










B 


CE 






:dis?2ih-c^ 




(line Mibi^ess KO-K-l^ 




C 


lO 














D 


4f; 




LDCM 


H,L 








E 






IDBT 










F 


Ol 






PA<,mf*l X 






\ 1 




'"P 




TS 










1 
















2 


lo 














3 


CD 




JS 










4 


E^ 






:LOKfo DELWr) 








5 


\o 














6 


2.?) 




ICP 












7 


7D 






— 






EMD rtF Pf\e>E.? 




8 


FF 




CP (NX 










9 








oo 








A 


r? 




JP 


-Z.O 








B 








SELFir^oP 








C 


11 














D 


C?, 




TP 








VES- 5T^RT OVER 




E 


m 








- 






F- 


II 













mmvrt 



4-53 



PRO-LOG CORPORATION 



PROGRAM ASSEMBLY FORM 



HEXADECtMAL 


MNEMONIC 


TITLE DATE 


HAUt 

ADR 


LINt 

AOR 


INSTR 


LABEL 


INSTR 


MODIFIER 


COMMENTS 


\\ 

— M . 


Co 


2.1 






H L 




r SET TO CLE^R T^^E. ^^NSPLKV BV Fll_LIN6 




1 








ELj-U 




TWE \<.E.V-l>iPl!lT RUFFER ^INi R^CVV) 




2 


2.1 










\N »TH KSd.TL "'SPNi-E" c:HftRtVTF.R5. 




3 






LDRT 










4 


OR 














C 5 




fann IK — 












g 


Ar> 














7 


i3_ 






H U 








8 


05 




DCB 










9 


r 2_ 




TP 












/■ 
















1 • 














C c 


r 1 1 






n 1 1 — 




r DISPIM THE COMTEMTS rvFTHE 




D 


02. 










KEY-INPOT BUFFER 






? 1 














p 


r T» 




w -J 








L 1 


■V, ^ 


^ ~ 














•] 
















U 2 


OIJ 




O w 






P WA\T POR. KViey TCi RE. PR.E.*>SED 




3 


<r c" 

.J -~ 






I KtfMJ ISC'! ; 










1 1 
1 1 














5 












L-i — c f^rs. i-'i.irL.rM f 






1 1 






1 Lf n'S '^'^ 1 




C'kEY*\l ARBlTRAR\Ly ft<><.IGMED 




7 


f Pi 




TP 







THE *fLCAR Dl<«PLftY" FUKlCTlDN^ 




3 


r r\ 














9 


1 1 




















— 






r M ft - gur T4*^ VtCV Tft A^^rrr 

w — ^AJI\ H 1 ITTi — LU H 




g 


7U 














Q 


1 /*^ 

1 CJ 
















2,1 




Uurl. 


tU-^ 




L SttlET IHXti THE V<f.y-IHPUT BUFFER 




E 








Key fH)FFER+7 




AS THE \-<>ft h ftvAD l^VA*T^ 




F 


2 1 












It 

\ \ 


E. 














1 


OA 














2 




SHIFT BUFFER 












3 








n 1 — 








4 






I rift 


^ 








5 


^ «j 




* ^ ~ — 


' ril Imm 








6 


i^j^ 















7 






W ' 










8 


■ r 






SHVFT- BUFFER 








g 


1 1 
1 1 




















TP 


























c 
















D 














E 














F 












LJ 


_j — 


CD 


VCEV TEST 








r- C.l_EA\R THE. DvSPL-PiM' 






1 A 

1 rv 














2 


1 (J 














3 




Repent 


1 W 1 1 






- W AIT- «)R K KEV T6 BE PRESSED 




4 


55 














5 


11 










- bISPLAV THE KEVii HEX ADECimRLVftlUE 




6 


48 










IM PDi\TI0M lAtJDO 




7 


OOP 














8 


Ol 






POSITION- 1 








9 


CD 




T$ 










A 


CE 






'Dl<.P-2lnO 








B 


lo 










r 




C 


C3 




Z? 






RtPE^T- IWOFP^IKIITELV 




D 


F3 






REPEKV 








E 


11 














F 













mm SAT 



4-54 



PRO-LOG CORPORATION 



PROGRAM ASSEMBLY FORM 



HEXADECIMAL 


MNEMONIC 1 


rrTLE DATE 


PAGE 


LlNb 


INSTH 


LABEL 


INSTR 


MODIFIER 


COMMENTS 


_L1 





— ' ~ 






ALL RON^S 






1 














2 


r •> 

\ t fm 








-r— RRF TMF r<V\RDlMATF^ THE. <«MYVF ? 




3 








'hP^AftP VFV) 








1 1 












5 






1 hf^ 

i_L/ n 


c 


jL&2 i-mNMCtvi fSfJTI si)\''iL/lrifMtl rNm'j 




g 










Or>(t. 01- CO INrul fCJM DIIZ> ID UIMI 




7 


' — 












A a 

O o 


\ c 
1 




r\T\r\v_ 




ni rt2. n'3. 04 aR 0^ 










or — 


1 






A 


TO 














1 1 
































TP 










OK 












F 


11 










\ 1 
1 1 












T"" lOA 1 I 1 T"! Pi V Q /\\Kl y^^D (^\KI bJX*C RV A. T7^ 






CJ f 








PC/NlMirf'C 14FY i^Nrf^ /^ft vr\ \4 




2 


OT 












L- 








n 






4 


78 




1 r\ N. 

LD 


Q 








Oto 




1 t\Q.T 

LPdi 




£>NE OF FOUR OUTPUT PORT BlTi TO 




6 


oo 






00 


(^►JE nF Ff)UR HEJf »4a«\ftEtiS: 






1 r 


FINU COUJiiw 


DD fc.^ 
KK^C. 




00, 01^ <0 2., 03 




8 


TN TV 






C_ 1 






9 








ADD KOWtCOL 






A 


\ 1 
11 






■ 






B 


0*1- 












C 






"T-D 










c% —7 












^ 


11 














1 








T MStb trOKvJEKTEDROW+fOUjrftkirf^oRtim 




1 1 








f\U n 




TO PRrsbuCE \<EYS \/Rlof^ im H 






1 






1 r> Q 


r\ 






2 






K\r» 




u EXIT _ 




3 














4 














5 















6 














A 7 




(?bCI\N 1 






— *.TR&RE- ti.l_UVLt\ Cmjr^HS 




B 


OF 








SimOt-TANEOUALY 




9 






OrP\ 








A 


I>0 






u lAi ft yois\ 






B 


00 




— — 

NOP 








C 






V P F\ 








D 














E 


00 




Nor 








F 






ANPU- 




T- nn F_TE. RA,- vtFR -siiUTf !A P.VT5. IKKD SET. 


I \ 




3F 












1 


C9 




HTo 




py.ir 5>=o ^F AMY \S CLOSED. 




2 














3 
















LP. 




\PK 








5 


Do 






OUT ft 9ftKT 






6 


00 




NOP 










7 


\1 








T SET dlXRaV FLKfo \F C.LO*>eD 




8 










SFT S\e,W FLKGs ^ri FUR ^E.RO FLK6 




9 


RO 






^\C^U feVT 


IF ^1 




A 










JL 




B 














C 














□ 














E 














F 













.4-55 



MO-lAG CORPORATION MKWMMM AmmWLV FORM 



HEXADECIMAL 


MNEMONIC 


TITLE DATE 


KAtat 
ADR 


Lirvt 
ADR 


INSTR 


LABEL 


INSTR 


MODIFIER 


COMMENTS 


II 


4 


IE 


W ■ 1 ™ ' 1 — 1 1 !■ fcrf 1 








P PRESET hSClL OP^T^ CouKlTER TO 




1 


AO 










r 5P^CE. CHARACTER 




^ 2 


7B 


TE5T \J^V 




El 








3 


CU 




TS 










4 


A[> 














5 


10 










1 




6 






,TS 










7 








'LfiHfei bELPN\^ 








S 


iri 














9 


7B 






E. 




r \NCRFN\eNT Kt5>c-Ii; DftT<>l <POKTER 




A 


IC 




ICE. 










B 


PE. 




CPftT 






n N/FVUVO A -sen. CHhRft^TER? 




C 


t>F 














D 


C2. 




TP 










E 


4i 






TEST \_C)OP 








F 












U 


5" ° 






JP 






r NO- ■^TARTOVPR 




1 








DlSPH\V TtST 




■ 




2 
















3 














4 














S 5 








TS 






ANY KEY CLOSEb? 




6 


A7 














7 


II 










CHOTt-T«\S •SEQllEMCE ENSURES THAT 




g 






TP 






A ?REMI0OSLV t)F(X>t>ED KEY HAS PEET* 




9 


■ J . J — 










RELEASED BEFORE SENSl>J6 A NEW KEY) 




A 


1 1 














B 


CD 




T<> 






r no; PAb-SE tJ^R KEy sfttlp tin\e 




c 



















1 L.J — 














e 


CLT> 




.T<. 










F 


ATL 






(. SCKVi,") 






\| 


^ 


■ I 










(NATE- DllPUf ATED SCAM 




1 






TP 






SEQUENCE REJECTS RAISED 




2 








'READ KEY") 








3 


(1 














(04 






LORI 






- HO- RGTRTE f\ <.IM(--,LE BVT AClJOSS 




5 


ftCl 










KkV ^-i^LHrtVUS IM V<.EyBnP>RD ISM\TBVX 




(O 6 


7ft 




LOK 


p, 




IMT\L_ K VIEV fLAfURE \*> bETTEcTE-D. ^ 




7 


07 














8 


■47 






A 








9 


FE 




rpfM 










A 


lo 






in 








B 






TP 










C 
















D 
















E 






op^ 






AMY Key c\jo<je:i>? 




F 


DO 






OftTft PCWC 






11 


7 


DR 




IP<^ 










1 


Ho 

.kf\ f 














2 


Efo 














3 


."iF 












4 


C.h 




\ 






5 


(nh 






decode: LOOP 






6 


11 












7 


4F 




LOC 






- SES-SAVE \T5. row VdOLOnWi 




8 


r.5 




PS? 


-A^:^ 




r <rnftRDH4ATE<. W^R DE<:r5t)lVi& LWER. 




9 


CD 




TS 






- 9KM£. FAB r/sMTfttX SETTie. TircvC 




A 
















B 












r 




C 


f.l 




PLP 






COinftPRRE «.h\/EC) + PRPSCT CfiORDINMC 




D 






IPh 






FftR tiftlSfi REJtCTJftN 




E 


DO 














f 






I3!IS1 









4-56 



SECTION 5 
Maintenance 



Reference Drawings 

The schematic (Fig. 5-1 ) and assembly drawing (Fig. 5-2) In the following pages are included in this manual 
FOR REFERENCE USE ONLY. They may differ in some respects f. om the card and documentation that the 

user receives from Pro-Log. 

The schematic and the assembly drawing shipped by Pro-Log with the card arethosefrom which the card was 
manufactured. 



5-1 




Figure 5-1. Schematic for 7303 (reference only) 















/ SECTION A-A 








i USE rw.i06 JIG V7(XXt7 TO Fit, HEIGHT OF K£Y BOARD, 
INSTALL SPKCEIQ PnOK HI VILDBIwe MnTCWS. 
^IDEHTIFI wm «i,EV«.Y »EV LETTER iisms noKn STIWir. 



7 Do Not immerse card in solvent. 

A APPLY LaRTITE D SCREWS » PUCS). 

^ MOUNT KEYBOABO WITH LETTERING ON CtflC. SOE WSlGE-a 
A BREAK OFF OOTTEO AREA OF TAB. 
A CARD MAPPED 7D PORTS DO AND 01. 
OewOTES ™ I END OF ICS. 
I aO^RD TO CONFORM WITH ASSY STANDARD A5I004 . 
NOTES: UNLESS OTHERWISE SPECIFIED. 



REFERENCE ONLY 











wn 






A 


C£L£TE RUBBER WD SPAtfRS. 
MARK KTB ASm-KB,flCR478. 
ADOacCTiatJ C-C. 


,1 








reVlSeO PER TCN M9S 








C 


wvisED (^R PEN uea 







KEY WITW OETML 

ft (RM U)tfT«tCT) 



KZ3A 

napt 

MOS 



SECTION C-C 
CIRC SIDE OF KEVaOMD 



OETAtL d 
4 Pt^ 



SCHEMATrC (04«73 
RftRTS LIST 104975 



16 


RLC a» 


CRI -8 


t? 






14 


4.7K NtTV«DRK 


RI.2 


13 






12 








I.O«F. 50V 


CI 


10 






9 


O.I,jF 50V 


C2.3.4.5.fe.7.8.9 


ITEM 


DESCRIPTION 


REF. DESIGNATION 



PRO-LOG CORPORATION 



ASSEMBLY . 730a 
KEYBOARD DISPLAY 

CARD 



D 1049 74 C 



(Is 



Figure 5-2. Assembly for 7303 (reference only). 



Signal Glossary 

See Figs. 5-3 and 5-4. 



MNEMONIC 


MEANING 


PIN(S) 


DESCRIPTION 


FUNCTION 


D0-D7 


Data bus 


7-14 


High-active 


8-bit, 3-state bidirectional data bus. 


A0-A7 


Address bus 


\o, 1 ^ , ly 

21, 23, 25 

27, 29 


Mign^active 


Low-order 8 bits of address bus, used for 
I/O port addressing. 7303 responds to ports 

DO, D1 as shipped. 


SYSRESET* 


System 
reset 


47 


Low-active 


Originates at processor card in response to 
power-on or PBRESET*. 


PBRESET* 


Pushbutton 

reset 


48 


Low-active 
switch closure 


Drives processor card's PBRESET* input. 


lOEXP 


I/O port 
expansion 


35 


IHigh-active 


Bank select; must be low for7303; grounded 
by 7801, 7802, 7803 processor cards. 


lORQ* 


I/O request 


33 


Low-active 


Indicates that the address bus has a valid 
port address on A0-A7. 


RD* 


Read 


32 


Low-active 


Indicates that the processor is reading from 

the addressed input port. 


WR* 


Write 


31 


Low-active 


Indicates that the processor is writing to the 
addressed output port. 


PCI 
PCO 


Priority 
chain 


52 
51 


Higii-active 


Card level serial interrupt priority; trace 
maintains continuity on 7303. 



Figure 5-3. STO BUS Edge Connector Signals for the 7303 
(see also STD BUS pin list, Fig. 2-7). 
Note: Unused pins are- open; pads are provided on some unused pins for user signals. 



MNEMONIC 


MEANING 


DESCRIPTION 


COMMENTS 


AO, A1 


Display digit address 


High-active 


Selects one of four digits in each half of the 
display. 


A2, A2* 


Display chip select 


Low-active 


Selects the left-hand four digits (A2 = 1) or 
the right-hand four digits of the display 

(A2 = 0). 


ID0*-ID7* 


Input port bits 


Low-active 


IDG* - ID5* are used to read key closures 
from the keypad matrix. 
ID6* is used to read the state of rocker 
switch 81. 

ID7* is used to read the state of rocker 

switch S2. 


ISO* 


Input port select 


Low-active 


Decoder output used to read input port DO. 


b0-b7 


Output latch bit 


High-active 


b0-b6 are used as the ASCII character 
bus to the display digits. 
b7 selects cursor mode when low, char- 
acter mode when high. 


b0*-b3* 


Output latch bit 


Low-active 


Used to strobe the keypad for key reading/ 
decoding operations. 


OSO*, 0S1* 


Output select 


Rising edge 


Used to latch data bus data to output ports. 
(DO, D1 as shipped.) 


RST* 


Reset 


Low-«ctive 


Buffered SYSRESET* used to reset the out- 
put ports and the binary LED display. 



Hgure 5-4. Internal 7303 Signals. 

5-4 



Keyboard Label Replacement 

To change a keyboard label, grasp the clear keyswitch cover at the top and bottom edges with the fingernails of 
your thumb and index or middle finger, then pull directly out and away from the keyboard. The clear plastic 
cover will snap free from the keyswitch, exposing the legend area below. The legend may then be replaced or 
covered over by a new legend such as those legends provided by Pro-Log or appropriate sized legahds 

provided by the customer. Replace the clear plastic cover on the keyswitch. 



WARNING 

Do not expose the 7303 keyboard to fluxes, solvents, cteaniftg solutions, or their fumes. 



Keyboard Disassembly 

To replace an individual key, take out the eight slotted screws located underneath the keyboard. Holes in the 
circuit card provide access to these screws from the card's rear. When the screws are removed, the keycaps fall 
free with the cover for easy removal. When re-assembling the keyboard, use a mechanical screw starter. 



Special Parts 



The following parts (Fig. 5-5) may not be readily identifiable by markings on the parts themselves. Should the 
user desire to obtain these parts from local sources other than Pro-Log, the following information is given 
concerning their manufacture: 



PART 


PRO-LOG 
PART NUMBER 


MANUFACTURER 


MANUFACTURER'S 
PART NUMBER 


Alphanumeric 

Display 


90201^ 


LITRONIX 


DL-1416 


Keyboard 


902084 


K. B. DENVER 


MOD 25-01-02-00 


Rocker Switch 


901359 


C&K COMPONENTS 
or 

JBT SUBMINIATURE SWITCH 


7810 






MT77 



Please note that replacement of parts by the customer may VOID THE PRO-LOG WARRANTY. Pro-Log 
assumes no responsibility for the continued availability of these parts. 

Figure 5-5. Special Parts for 7303. 



S-5 



Return for Repair Procedures 



Domestic Customers: 

1. Call our factory direct at (408) 372-4593, and ask for CUSTOMER SERVICE. 

2. Explain the problem and we may be able to solve it on the phone. If not, we will give you a Customer Return 
Order (CRO) number. 

Mark the CRO number on the shipping label, packing slip, and other paperwork accompanying the return. 
We cannot accept returns without a CRO. 

3. Please be sure to enclose a packing slip with CRO number, serial number of the equipment, if applicable, 
reason for return, and the name and telephone number of the person we should contact (preferably the 
user), if we have any further questions. 

4. Package the equipment in a solid cardboard box secured with packing material. 

CAUTION: Loose MOS integrated circuits, or any product containing CMOS integrated circuits, must be 
protected from electrostatic discharge during shipment. Use conductive foam pads or conductive plastic 
bags, and never place MOS or CMOS circuitry In contact with Styrofoam materials. 

5. Ship prepaid and insured to: 

Pro-Log Corporation 
2411 Garden Road 
Monterey, California 93940 

Reference CRO # 



International Customeis: 

Equipment repair is handled by your local Pro-Log Distributor. If you need to ODntact Pro-Log, the factory can 
be reached at any time by TWX at 910-3.60-7082. 

Limited Warranty: Seller warrants that the articles furnished hereunder are free from defects in material and 
workmanship and perform to applicable, published Pro-Log specifications forone year from date of shipment. 
This warranty is in lieu of any other warranty expressed or implied. In no event will Seller be liable for special or 
consequential damages as a result of any alleged breach of this warranty provision. The liability of Seller 
hereunder shall be limited to replacing or repairing, at its option, any defective units which are returned F.O.B. 
Seller's plant. Equipment or parts which have been subject to abuse, misuse, accident, alteration, neglect, 
unauthorized repair or installation are not covered by warranty. Seller shall have the right of final deter- 
mination as to the existence and cause of defect. As to items repaired orreplaced, the warranty shall continue 
in effect for the remainderof the warranty period, orfor ninety (90) days following date of shipment by Seller or 
the repaired or replaced part whichever period is longer. No liability is assumed for expendable items such as 
lamps and fuses. No warranty is made with respect to custom equipment or products produced to Buyer's 
specifications except as specifically stated in writing by Seller and contained in the contract. 



APPENDIX A 
Front Panel Mounting of 7303 Card 

PLAN 131 



A-1 



Introduction 

The 7303 is designed as a direct interface to the STD BUS. If you mount the 7303 outside the STD BUS card 
rack, do not connect it directly to the STD BUS through a long cable. Such a connection increases backplane 
capacitance^.Spd cross coupling, and results in excessive crosstalk, noise, and generally degraded perfor- 
mance. 

Instead, connect the 7303 to the end of l/Oportlines. Thistype of connection (Fig. A-1) requires more program 

involvement, but it avoids the problems associated with transmitting fast processor signals over a long cable. 
In this mode, a TTL I/O card with 3-state I/O lines provides the signals needed to control the 7303 in place of 
the direct STD BUS drive. The program generates these signals by executing short instruction sequences 
instead of the single read and write instructions used in I/O mapped operation. 



7805 TTL I/O C«d 
or 

7507 I/O Module Mounting 
Rack Interface Card 



Ribbon Cable 
(up to 6 feet) 



7303 Keyboard/Display Card 
(fMiioteiiaiMl mounted) 



1 



1/ 












— i 



IB 



oooooooo 

□□□□□ 
□□□□□ 
□□□□□ 

□□□□□ 
□□□□□ 



Figure A-1. Cable Connection when Operattng the 7303 as an I/O Load. 



Remote 7303 Drive Via I/O Lines 

When driving the 7303 via I/O lines, the 7303's address decoder circuitry is not used, since the program, 
instead of the usual hardware, controls card selection. Only address line AO is retained to select between the 
two sequential port addresses on the 7303. In addition, the IORQ*and lOEXP lines are not used, since the RD* 

and WR* signals alone can maintain full card control. 

Using either Pro-Log's 7507 module mounting rack interface, 7605 general purpose TTL I/O card, or equiva- 
lent I/O card with bidirectional I/O capability, connect the 73(^'s edge connector as follows: 

1. Ground address lines A1 throu A7 (edge connector pins 15, 17, 19, 21, 23, 25, 27, to pins 3, 4); 
move address jumpers to XO, YO, ZO, and Z1. 

2. Ground lORQ* and lOEXP (edge connector pins 33 and 35 to pins 3, 4). 

3. Connect a 3-state I/O port (8 lines) to the 7303's data bus d0-d7 (edge connector pins 13, 11,9, 
7, 14, 12, 10, 8), maintaining one-to-one bit significance for programming convenience. 

4. Connect four output-only lines to the 7303's AO, RD*, WR*, and SYSRESET* lines (edge 
connector pins 29, 32, 31 , and 47, respectively). Note that these lines are always outputs from the 
3-state I/O card and must remain driven at all times for correct 7303 operation. Do not allow 
these lines to float unless pull-up r^lstors are connected. 



NOTE 

In steps 3 and 4 above, the interface cable to the 7303 should consist of ribbon cable with 
alternating ground-signal-ground, or multiple twisted pairs consisting of signal/ground in each 
pair. Limit eabte tength to 6 feet (2 meters). 

5. Conrtect +5\/ ±5% and logic ground to edge connector pins 1, 2, and 3, 4, respectively, via a 

twisted pair of 18-gauge wires or larger. 

6. (Optional). If the 7303's reset pushbutton is to be functional, connect the card's pin 48 to STD 
BUS trace pin 48. 



A-2 



To program the 7303 as an I/O load, substitute instruction MqiMiicM for the single read/write instructions 

normally used. These sequences are as follows: 



WRITE Sequence 



READ Sequence 



Select AO = or 1 (select the 7303's data or control output ports). 

Write output data to dO through d7 at the 7303. 

Set WR* = 0. 

Set WR* = 1. 

Float the data bus drivers. 

Set AO = (select the 7303's input port). 

Set RD* = 0. 

Read the input data from 7303's dO through d7. 
SetRD* = 1. 



Panel Mounting 

The recommended cutouts for mounting the 7303 in a panel are detailed in Fig. A-2. Mount the 7303 in panel 
stock of up to 0.125-in. thicltness, using the four mounting holes provided on the card. The display bezel is 
recessed approximately 0.375 in. below the keycaps and binary LEDs. This recessing allows for beveling 
around the display cutout, while the keys and LEDs protrude from the panel front (Fig. A-3). 



4.252 




.213 in. dla. - 8 Pies. 



CUTOUT DETAIL B 



Figure A-2. Cutout Details of 7303 Panel-Mounting (dimensions in Inches). 



A-3 



-1.145" 



4.562" 



PWB 



1? 



ALPHANUMERIC 
DISPLAY- 



BINARY LEO 
DI^LAY 



KEYBOARD 



.950" 



"1/8" PANEL 
PANEL THICKNESS 
0.125 In. 
0.318 cm. 



Figure A-3. Profile iMounting of 7303 in User's 1/8-in. Panei. 



A-4